圖片.png
拉取docker鏡像
docker pull sameersbn/postgresql:latest
docker pull sameersbn/redis:latest
docker pull sameersbn/gitlab:latest
docker 安裝 postgresql
docker run --name gitlab-postgresql -d \
--publish 5432:5432 \
--env 'PG_TRUST_LOCALNET=true' \
--env 'PG_PASSWORD=yourpassword' \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:latest
-
--publish | -p
映射端口 -
--env | -e
設置容器內環(huán)境變量 -
--volume | -v
映射宿主機目錄到容器目錄 -
PG_TRUST_LOCALNET=true
信任本地網(wǎng)絡連接 -
PG_PASSWORD=yourpassword
默認postgres用戶只允許從本地連接,此項配置密碼允許遠程連接 -
DB_NAME=gitlabhq_production
默認不創(chuàng)建其他數(shù)據(jù)庫搂擦,通過設置DB_NAME創(chuàng)建农尖,多個數(shù)據(jù)庫時以,
隔開 -
DB_USER=gitlab
,DB_PASS=password
對創(chuàng)建的數(shù)據(jù)庫授權 -
DB_EXTENSION=pg_trgm
添加pg_trgm擴展寞宫,相當于執(zhí)行create extension pg_trgm;
docker 安裝 redis
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
docker 安裝 gitlab
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=22' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:latest
-
--link
鏈接容器服務,通過link蛉腌,可以自動獲取前文設置的DB庫名肺樟、用戶名、密碼推捐,無需再另外提供 -
GITLAB_PORT=80
定義gitlab web端口為80 -
GITLAB_SSH_PORT=22
定義gitlab容器的ssh服務端口為22 -
GITLAB_SECRETS_DB_KEY_BASE
GitLab CI 所使用的加密密鑰,至少32字符長度 -
GITLAB_SECRETS_SECRET_KEY_BASE
session 加密密鑰侧啼,至少64字符長度 -
GITLAB_SECRETS_OTP_KEY_BASE
Encryption key for OTP related stuff with GitLab ,至少64字符長度 - 加密密鑰都可以通過
pwgen -Bsv1 64
生成 - gitlab ssh root 默認密碼
5iveL!fe
,可以通過GITLAB_ROOT_PASSWORD
設置堪簿,密碼至少8字符長度
docker-compse
version: '2'
services:
gitlab-postgresql:
image: sameersbn/postgresql:latest
environment:
PG_TRUST_LOCALNET: 'true'
PG_PASSWORD: Passw0rd
DB_NAME: gitlabhq_production
DB_USER: gitlab
DB_PASS: Passw0rd
stdin_open: true
volumes:
- /srv/docker/gitlab/postgresql:/var/lib/postgresql
tty: true
ports:
- 5432:5432/tcp
gitlab-redis:
image: sameersbn/redis:latest
stdin_open: true
volumes:
- /srv/docker/gitlab/redis:/var/lib/redis
tty: true
gitlab:
image: sameersbn/gitlab:latest
environment:
GITLAB_PORT: '80'
GITLAB_SSH_PORT: '22'
GITLAB_SECRETS_DB_KEY_BASE: long-and-random-alpha-numeric-string
GITLAB_SECRETS_SECRET_KEY_BASE: long-and-random-alpha-numeric-string
GITLAB_SECRETS_OTP_KEY_BASE: long-and-random-alpha-numeric-string
volumes:
- /srv/docker/gitlab/gitlab:/home/git/data
links:
- gitlab-redis:redisio
- gitlab-postgresql:postgresql
ports:
- 10020:22/tcp
- 10080:80/tcp