A commemorative post for build local site with docker

At the first line, I wanna say: docker is the best tool to improve the production efficiency.

I want to build my own site for a long time, and today, succeed. I depley the three site at one server (my laptop, ThinkPad X1C 2014), the site works very smoothly. So I record my action below.

MySql


sudo apt-get update && sudo apt-get install mysql-server

WordPress


docker run -itd --name wordpress \

-v /opt/wordpress/html:/var/www/html \

-p 12080:80 \

wordpress

OpenProject


docker run -itd --name openproject \

-v /opt/openproject/pgdata:/var/lib/postgresql/9.6/main \

-v /opt/openproject/logs:/var/log/supervisor \

-v /opt/openproject/static:/var/db/openproject \

-p 10080:80 \

openproject/community

Gitlab


docker run -itd --name gitlab \

--hostname gitlab.endercaster.lan \

-v /opt/gitlab/config:/etc/gitlab \

-v /opt/gitlab/logs:/var/log/gitlab \

-v /opt/gitlab/data:/var/opt/gitlab \

-p 11080:80 \

-p 11022:22 \

-p 11443:443 \

gitlab/gitlab-ce

Then, using nginx as reverse proxy, proxy by host.

Generate jekyll style article template with bash shell


#!/bin/bash

filename=$(date +"%Y-%m-%d")
header="---\n"
header=$header"layout: post\n"
if [[ $1 ]]
then
    header=$header"title: \""$1"\"\n"
    filename=$filename"-"${1// /-}
else
    header=$header"title:\n"
fi
header=$header"date: "$(date +"%Y-%m-%d %H:%M:%S %:z")"\n"
header=$header"categories: \n- CS\n"
header=$header"tags: \n- Computer Science\n"
header=$header"---"
if [[ $1 ]]
then
    echo -e $header > $filename".markdown"
else
    echo -e $header""
fi