# 8. 使用 compose 部署 GitLab 应用
#### 1. 介绍
上一篇:[Docker Compose的介绍与安装(七)](https://www.rails365.net/articles/docker-compose-de-jie-shao-yu-an-zhuang-qi)
之前介绍过compose,现在来使用它,直接来部署一个gitlab应用。
![](https://box.kancloud.cn/834810744d12ae581c395c7475b2c1f5_1844x990.png)
#### 2. 下载镜像
我们部署的是[sameersbn/docker-gitlab](https://github.com/sameersbn/docker-gitlab)这个镜像。
首先把它下载下来。
```
$ docker pull sameersbn/gitlab
```
#### 3. 配置文件
我们不需要去run它,只需要先下载一个compose的配置文件。
```
$ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
```
打开这个文件,把它的内容按照你自己的需要修改,比如改改github登录的配置信息,邮件发送的配置信息等。
比如我的配置如下:
```
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.5-4
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:8.15.2
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
- TZ=Asia/Beijing
- GITLAB_TIMEZONE=Beijing
- GITLAB_HTTPS=false
- SSL_SELF_SIGNED=false
- GITLAB_HOST=gitlab.rails365.net
- GITLAB_PORT=10080
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=
- GITLAB_SECRETS_DB_KEY_BASE=xxx
- GITLAB_SECRETS_SECRET_KEY_BASE=xxx
- GITLAB_SECRETS_OTP_KEY_BASE=JBSWY3DPEHPK3PXP
- GITLAB_ROOT_PASSWORD=
- GITLAB_ROOT_EMAIL=
- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
- GITLAB_NOTIFY_PUSHER=false
- GITLAB_EMAIL=hfpp2012@rails365.net
- GITLAB_EMAIL_REPLY_TO=noreply@example.com
- GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com
- GITLAB_BACKUP_SCHEDULE=daily
- GITLAB_BACKUP_TIME=01:00
- SMTP_ENABLED=true
- SMTP_DOMAIN=192.168.33.10
- SMTP_HOST=smtpdm.aliyun.com
- SMTP_PORT=25
- SMTP_USER=hfpp2012@rails365.net
- SMTP_PASS=xxxxx
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=plain
....
- OAUTH_GITHUB_API_KEY=8910bb915c112971520b
- OAUTH_GITHUB_APP_SECRET=dc04e2fa55626bd0b1433c35adb57d85511d5772
```
有些地方被我省略了,还有些地方被我用`xxx`隐藏了。
#### 4. compose up
现在改完之后就可以直接运行了。我们使用下面的命令来运行。
```
$ docker-compose up
```
运行的时候会发现会下载其他的镜像,比如postgresql,还有redis。因为compose是允许不同的镜像容器互相链接的,从上面的配置文件中的内容也可以看出来。
如果要以守护态运行,可以加`-d`参数。
#### 5. nginx配置
这个镜像默认是会启用10080端口访问,我们可以用nginx反向代理到这个端口上。
比如:gitlab.conf。
```
upstream gitlab {
server 127.0.0.1:10080;
}
server {
listen 80;
server_name gitlab.rails365.net;
server_tokens off;
root /dev/null;
location / {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://gitlab;
}
}
```
完结。
下一篇:[使用compose部署Rocket.Chat应用(九)](https://www.rails365.net/articles/shi-yong-compose-bu-shu-rocket-chat-ying-yong)
- 0. 介绍
- 1. 安装 docker
- 2. docker 的镜像和镜像源加速
- 3. docker 的容器
- 4. 理解 docker 镜像的层叠结构
- 5. 使用 Dockerfile 文件
- 6. docker 的数据卷
- 7. Docker Compose 的介绍与安装
- 8. 使用 compose 部署 GitLab 应用
- 9. 使用 compose 部署 Rocket.Chat 应用
- 10. docker 部署深入理解
- 11. 部署 owncloud 与 phpMyAdmin
- 12. 让 php-fpm 跑的 owncloud 应用 docker 化
- 13. docker 迁移 GitLab 项目