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:
parent
72fba63908
commit
e436420b96
|
@ -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
|
74
README.md
74
README.md
|
@ -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)
|
* Single file deployment (no external stylesheets)
|
||||||
* You can now version control and branch your resume.
|
* 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
|
```bash
|
||||||
brew cask install wkhtmltopdf
|
./bin/md2resume html examples/source/sample.md examples/output/
|
||||||
```
|
./bin/md2resume pdf examples/source/sample.md examples/output/
|
||||||
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/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Help
|
## Help
|
||||||
|
|
||||||
```
|
```
|
||||||
Markdown Resume Generator version 2.2.1 by Craig Davis
|
Markdown Resume Generator version 2.3.0 by Craig Davis
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
[options] command [arguments]
|
[options] command [arguments]
|
||||||
|
@ -69,25 +73,25 @@ Available commands:
|
||||||
version Show current version information
|
version Show current version information
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
Choose a template with the -t option.
|
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
|
If you want to edit your markdown resume in your editor while watching it
|
||||||
update in your browser, run this command:
|
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
|
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
|
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
|
in your browser, and then just save your markdown document when you want to see
|
||||||
a fresh preview.
|
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
|
## Authoring Your Resume
|
||||||
|
|
||||||
Markdown is limited to basic html markup. Follow the `examples/source/sample.md`
|
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.
|
are based on descendant and adjacent selectors.
|
||||||
|
|
||||||
## Feature Development
|
## Feature Development
|
||||||
|
|
||||||
In order to add new commands, you'll need to first install the dependencies:
|
In order to add new commands, you'll need to first install the dependencies:
|
||||||
|
|
||||||
* `composer install`
|
* `composer install`
|
||||||
|
@ -106,7 +111,7 @@ After that, you can run the `md2resume_dev.php` file from the command line.
|
||||||
|
|
||||||
## Building a Release
|
## 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`.
|
2. Run `composer build`.
|
||||||
3. Push both the tag and the code.
|
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
|
## 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.2.0__ : Dropped phar file distribution, removed Pake and migrated to composer commands
|
||||||
* __2.1.0__ : Dropped PHP5 support
|
* __2.1.0__ : Dropped PHP5 support
|
||||||
* __2.0.12__ : Added new `Roboto` template from [@ejwaibel](https://github.com/ejwaibel)
|
* __2.0.12__ : Added new `Roboto` template from [@ejwaibel](https://github.com/ejwaibel)
|
||||||
|
|
|
@ -36,6 +36,11 @@
|
||||||
"name": "Erik Waibel",
|
"name": "Erik Waibel",
|
||||||
"email": "ejwaibel@gmail.com",
|
"email": "ejwaibel@gmail.com",
|
||||||
"role": "Contributor"
|
"role": "Contributor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Benedikt Franke",
|
||||||
|
"email": "benedikt@franke.tech",
|
||||||
|
"role": "Contributor"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
|
|
Loading…
Reference in New Issue