记录一下使用docker-compose部署常用的服务
Nginx#
1
2
3
4
5
6
7
8
9
10
11
12
13
|
version: '3.4'
services:
nginx:
image: nginx:alpine #镜像地址
container_name: nginx #容器名
restart: always
ports:
- "443:443"
- "80:80"
volumes:
- ./conf/cert/:/etc/nginx/cert/ # ssl证书路径
- ./conf/conf.d/:/etc/nginx/conf.d/ # conf配置文件
- ./logs:/var/log/nginx # 日志
|
Mysql#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
version: '3.4'
services:
db:
image: mysql
container_name: mysql8
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1 # 重要,设置mysql不区分大小写
--max_allowed_packet=128M;
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql # 数据文件
- ./conf:/etc/mysql/conf.d # 配置文件
|
gitlab#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
version: '3.6'
services:
gitlab:
image: "yrzr/gitlab-ce-arm64v8:latest" # 此处使用的是arm64位的镜像,系统是amd架构的直接使用 gitlab/gitlab-ce 即可
container_name: "gitlab"
hostname: 'gitlab.example.cn' # 域名配置
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.cn:8181' #要与下面ports中的端口对应
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.aliyun.com"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "example@example.com" #用自己的aliyun邮箱
# gitlab_rails['smtp_password'] = "password"
# gitlab_rails['smtp_domain'] = "aliyun.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = true
# gitlab_rails['gitlab_email_from'] = 'admin@example.com'
ports:
- '8181:8181'
- '443:443'
- '2222:22'
volumes:
- '/prod/gitlab/config:/etc/gitlab'
- '/prod/gitlab/logs:/var/log/gitlab'
- '/prod/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
|
nexus个人仓库#
此处需要注意的是,对于映射的data,需要授予777权限,保证正常的文件夹的创建和文件的写入
1
2
3
4
5
6
7
8
9
10
|
version: '3.4'
services:
nexus:
container_name: nexus3
image: sonatype/nexus3
restart: always
ports:
- '8889:8081'
volumes:
- /prod/nexus/data:/nexus-data
|