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.