Skip to content

Commit

Permalink
feat: Add docker build
Browse files Browse the repository at this point in the history
This adds a Dockerfile which builds a Docker image
with all required dependencies included.
It helps to simplify installation and usage of the tool.
  • Loading branch information
spawnia committed Mar 14, 2018
1 parent 72fba63 commit e436420
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 31 deletions.
26 changes: 26 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Utilize multi-stage build to keep image size down
FROM composer as composer
COPY composer.* ./
RUN composer install --no-dev --optimize-autoloader --no-progress --no-suggest

# Build the actual image
FROM php

RUN apt-get update \
&& apt-get install -qqy --no-install-recommends\
# This is for enabling the program to be run with watch
procps \
wkhtmltopdf \
# Required to run PDF generation
xvfb \
xauth \
&& rm -rf /var/lib/apt/lists/*

COPY --from=composer /app/vendor /app/vendor
COPY . /app

RUN ln -s /app/bin/md2resume /usr/bin/md2resume

RUN echo "alias md2pdf=\"xvfb-run md2resume pdf\"" >> ~/.bashrc

WORKDIR /resume
68 changes: 37 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,38 +14,42 @@ at the [blog post for the project][blog], or look in examples/output to see samp
* Single file deployment (no external stylesheets)
* You can now version control and branch your resume.

## Install
## Installation

#### OSX
1. The simplest installation of the PDF to HTML conversion tool is via [Homebrew Cask](https://caskroom.github.io/)
```bash
brew cask install wkhtmltopdf
```
2. Download as .zip (cloning has [an issue as of Dec 2017](https://github.com/there4/markdown-resume/issues/65)) and unzip.
3. [Install PHP 7](https://jason.pureconcepts.net/2016/09/upgrade-php-mac-os-x/) and be sure to update your PATH variable.
4. [Install 'composer'](https://getcomposer.org/download/), a per-project package installer to setup the rest of the requirements. You may need to run './composer.phar update' to get the correct versions of dependencies.
5. Now you should be ready to continue down in Quickstart.
### Docker

#### Debian
```bash
sudo apt install php7.0-mbstring wkhtmltopdf
```
Run this in the directory where you put your markdown resume:

#### Fedora
```bash
sudo dnf install php-mbstring wkhtmltopdf
```
`docker run -it -v ${PWD}:/resume there4/markdown-resume bash`

## Quickstart
In the docker console, you can run `md2resume` on your files.
For PDF conversion, run `md2pdf` instead of the usual command.

```
./bin/md2resume html examples/source/sample.md examples/output/
./bin/md2resume pdf examples/source/sample.md examples/output/
### Local

1. Clone the repo `git clone git@github.com:there4/markdown-resume.git` or [Download ZIP](https://github.com/there4/markdown-resume/archive/master.zip)
2. **PHP 7** and **[composer](https://getcomposer.org/download/)** are installed and on your PATH
3. `composer install` inside of the project directory to install dependencies

4. For generating PDF files, you need to install `wkhtmltopdf`
* OSX: `brew cask install wkhtmltopdf` via [Homebrew Cask](https://caskroom.github.io/)
* Debian: `sudo apt install php7.0-mbstring wkhtmltopdf`
* Fedora `sudo dnf install php-mbstring wkhtmltopdf`

## Usage

The two most important commands are the following two. Run them
inside the cloned directory

```bash
./bin/md2resume html examples/source/sample.md examples/output/
./bin/md2resume pdf examples/source/sample.md examples/output/
```

## Help

```
Markdown Resume Generator version 2.2.1 by Craig Davis
Markdown Resume Generator version 2.3.0 by Craig Davis
Usage:
[options] command [arguments]
Expand All @@ -69,25 +73,25 @@ Available commands:
version Show current version information
```

## Examples

Choose a template with the -t option.

`./bin/md2resume html --template blockish examples/source/sample.md examples/output/`
```
./bin/md2resume html --template blockish examples/source/sample.md examples/output/`
```

If you want to edit your markdown resume in your editor while watching it
update in your browser, run this command:

`watch ./bin/md2resume html --refresh yes --template modern examples/source/sample.md examples/output/`
```
watch ./bin/md2resume html --refresh yes --template modern examples/source/sample.md examples/output/
```

This makes the build script run periodically, and html document will refresh
every two seconds via a meta tag. Open the `./examples/ouput/sample.html` file
in your browser, and then just save your markdown document when you want to see
a fresh preview.

For information about running this inside a Docker container, please read [Issue 46](https://github.com/there4/markdown-resume/issues/46#issuecomment-126520792)
where [Sebastian Klose](https://github.com/sklose) has shared his approach.

## Authoring Your Resume

Markdown is limited to basic html markup. Follow the `examples/source/sample.md`
Expand All @@ -98,6 +102,7 @@ we have very few ways to nest or identify elements that many of the css rules
are based on descendant and adjacent selectors.

## Feature Development

In order to add new commands, you'll need to first install the dependencies:

* `composer install`
Expand All @@ -106,7 +111,7 @@ After that, you can run the `md2resume_dev.php` file from the command line.

## Building a Release

1. Tag the repo with the new build number.
1. Tag the repo with the new build number.
2. Run `composer build`.
3. Push both the tag and the code.

Expand All @@ -119,6 +124,7 @@ are a more comfortable with html than markdown, you should use it.

## Changelog

* __2.3.0__ : Add docker support to ease the installation process [@spawnia](https://github.com/spawnia)
* __2.2.0__ : Dropped phar file distribution, removed Pake and migrated to composer commands
* __2.1.0__ : Dropped PHP5 support
* __2.0.12__ : Added new `Roboto` template from [@ejwaibel](https://github.com/ejwaibel)
Expand Down
5 changes: 5 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@
"name": "Erik Waibel",
"email": "ejwaibel@gmail.com",
"role": "Contributor"
},
{
"name": "Benedikt Franke",
"email": "benedikt@franke.tech",
"role": "Contributor"
}
],
"support": {
Expand Down

0 comments on commit e436420

Please sign in to comment.