** 不能使用 port 10080,此 port 已有特定用途。
** 第一次啟動後,可以設密碼,預設管理者是 root
目標,透過反向代理來存取 git。雖然可以很輕易的架一個VM,但也是很煩,就透過反向代理來存取Docker 上架設的 Git server,會省事很多。就用最多人用的吧 https://github.com/sameersbn/docker-gitlab
參考官網的「Deploy to a subdirectory (relative url root)」的段落。
有中文的說明,看起來更快些
https://jigsawye.com/2015/09/25/gitlab-ce-in-docker/
開始,沒有懸念的,直接拉最新版的吧。另外,需要用到 postgresql 和 redis,就一起拉下來吧。
docker pull sameersbn/postgresql
docker pull sameersbn/redis
docker pull sameersbn/gitlab
拉下來的 image 的大小,gitlab 大約 1.288GB,postgresql 約 231.5 MB,redis 約 203.4 MB。
先用手動啟動吧,成功後,再來調設定檔。
啟動 PostgreSQL container:
root #
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:latest
啟動 Redis container:
root #
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
最後啟動 Gitlab container。這邊要注意我除了照原文件之外,還額外加上 GITLAB_HOST,因為我的建置環境不在本機上,所以要加上該環境的 ip,否則 user 的大頭貼會是死圖。另外指令中的 long-and-random-alpha-numeric-string 請替換成一組隨機字串,可以使用 pwgen -Bsv1 64 來產生,看起來大概像這樣,7rfL2VSJ8s3kfNpbsPlcH73rXgFQ9QDFXzrtrBkMPm8GnvfCm5t6KRP2qpnn9fjT。執行指令如下。
root #
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_HOST=10.161.81.162' \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:latest
設定 systemd 的啟動程序,參考此網址
https://github.com/sameersbn/docker-gitlab/issues/237
補上 docker-compose.yml:
version: '2'
services:
redis:
restart: always
image: sameersbn/redis:latest
command:
- --loglevel warning
volumes:
- /srv/docker/gitlab/redis:/var/lib/redis:Z
postgresql:
restart: always
image: sameersbn/postgresql:9.6-2
volumes:
- /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
gitlab:
restart: always
image: sameersbn/gitlab:9.2.5
depends_on:
- redis
- postgresql
ports:
- "10080:80"
- "10022:22"
volumes:
- /srv/docker/gitlab/gitlab:/home/git/data:Z
environment:
- DEBUG=false
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- GITLAB_PORT=10080
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=/git
- GITLAB_SECRETS_DB_KEY_BASE=Lzzcp5Vrmh3Lg4B9Mwj8v4Gj3zs7dHN6vMr8HMLxJVqrS2kXhdjQdpMnWNZxP6pz
- GITLAB_SECRETS_SECRET_KEY_BASE=hTNCdbHw5hz9nmKJvmtB7HhNSfdjzXxMPnfKnDwvbRxdTw4GzcWWzlnTxhDHpVx2
- GITLAB_SECRETS_OTP_KEY_BASE=7rfL2VSJ8s3kfNpbsPlcH73rXgFQ9QDFXzrtrBkMPm8GnvfCm5t6KRP2qpnn9fjT
services:
redis:
restart: always
image: sameersbn/redis:latest
command:
- --loglevel warning
volumes:
- /srv/docker/gitlab/redis:/var/lib/redis:Z
postgresql:
restart: always
image: sameersbn/postgresql:9.6-2
volumes:
- /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
gitlab:
restart: always
image: sameersbn/gitlab:9.2.5
depends_on:
- redis
- postgresql
ports:
- "10080:80"
- "10022:22"
volumes:
- /srv/docker/gitlab/gitlab:/home/git/data:Z
environment:
- DEBUG=false
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- GITLAB_PORT=10080
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=/git
- GITLAB_SECRETS_DB_KEY_BASE=Lzzcp5Vrmh3Lg4B9Mwj8v4Gj3zs7dHN6vMr8HMLxJVqrS2kXhdjQdpMnWNZxP6pz
- GITLAB_SECRETS_SECRET_KEY_BASE=hTNCdbHw5hz9nmKJvmtB7HhNSfdjzXxMPnfKnDwvbRxdTw4GzcWWzlnTxhDHpVx2
- GITLAB_SECRETS_OTP_KEY_BASE=7rfL2VSJ8s3kfNpbsPlcH73rXgFQ9QDFXzrtrBkMPm8GnvfCm5t6KRP2qpnn9fjT
嗯,使用 docker-composer,不需設定 systemd
沒有留言:
張貼留言