记录一下使用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