feat: Add docker build

This adds a Dockerfile which builds a Docker image
with all required dependencies included.
It helps to simplify installation and usage of the tool.
This commit is contained in:
spawnia 2018-03-14 21:51:38 +01:00
parent 72fba63908
commit e436420b96
3 changed files with 71 additions and 34 deletions

26
Dockerfile Normal file
View File

@ -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

View File

@ -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
### Docker
Run this in the directory where you put your markdown resume:
`docker run -it -v ${PWD}:/resume there4/markdown-resume bash`
In the docker console, you can run `md2resume` on your files.
For PDF conversion, run `md2pdf` instead of the usual command.
### 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
#### 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.
#### Debian
```bash
sudo apt install php7.0-mbstring wkhtmltopdf
```
#### Fedora
```bash
sudo dnf install php-mbstring wkhtmltopdf
```
## Quickstart
```
./bin/md2resume html examples/source/sample.md examples/output/
./bin/md2resume pdf examples/source/sample.md examples/output/
./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]
@ -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`
@ -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`
@ -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.
@ -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)

View File

@ -36,6 +36,11 @@
"name": "Erik Waibel",
"email": "ejwaibel@gmail.com",
"role": "Contributor"
},
{
"name": "Benedikt Franke",
"email": "benedikt@franke.tech",
"role": "Contributor"
}
],
"support": {