docker CI部署样例
想学习更全面的docker知识可以点击右侧: Docker的概念及基本指令学习(全)
记得先创建挂载出去的文件夹,网上教学据说不创建也能用,但是可能是我自己环境原因不太行,所以就提前创建好了。整套流程用的是LDAP(管理账号用的)+ heimdall(门户站点)+gitlab (代码仓库)+ jenkins (持续构建、流水线)+redmine(饭票)+ sonar (代码质量检测工具)+nextcloud(网盘) 部分功能持续更新中......
version: '3.1'
services:
hs-ldap:
image: osixia/openldap:latest
hostname: hs-ldap
restart: always
ports:
- "10001:389"
volumes:
- /home/docker_vol/openldap/slapd/database:/var/lib/ldap
- /home/docker_vol/openldap/slapd/config:/etc/ldap/slapd.d
- /etc/localtime:/etc/localtime:ro
environment:
- LDAP_ORGANISATION=jn
- LDAP_DOMAIN=jn.com
- LDAP_ADMIN_PASSWORD=P@ssword
- LDAP_CONFIG_PASSWORD=P@ssword
- TZ=Asia/Shanghai
redmine:
image: redmine
restart: always
ports:
- "10003:3000"
volumes:
- /home/docker_vol/redmine/files:/usr/src/redmine/files
- /home/docker_vol/redmine/log:/usr/src/redmine/log
- /home/docker_vol/redmine/data:/home/redmine/data
- /home/docker_vol/redmine/config/configuration.yml:/usr/src/redmine/config/configuration.yml
- /home/docker_vol/redmine/plugins:/usr/src/redmine/plugins
- /etc/localtime:/etc/localtime:ro
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: schoolcloud
REDMINE_SECRET_KEY_BASE: supersecretkey
REDMINE_DB_ENCODING: utf8
db:
image: mysql:5.7
restart: always
ports:
- "10010:3306"
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- /home/docker_vol/redmine/mysql/data:/var/lib/mysql
- /home/docker_vol/redmine/mysql/conf:/etc/mysql/conf.d
- /etc/localtime:/etc/localtime:ro
environment:
MYSQL_ROOT_PASSWORD: schoolcloud
MYSQL_DATABASE: redmine
TZ: Asia/Shanghai
db_nextcloud:
image: mysql:5.7
restart: always
ports:
- "10011:3306"
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- /home/docker_vol/nextcloud/mysql/data:/var/lib/mysql
- /home/docker_vol/nextcloud/mysql/conf:/etc/mysql/conf.d
- /etc/localtime:/etc/localtime:ro
environment:
MYSQL_ROOT_PASSWORD: schoolcloud
MYSQL_PASSWORD: schoolcloud
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
TZ: Asia/Shanghai
devops-nextcloud:
image: nextcloud
restart: always
ports:
- "10002:80"
volumes:
- /home/docker_vol/nextcloud/html1:/var/www/html
- /etc/localtime:/etc/localtime:ro
environment:
REDMINE_DB_MYSQL: db_nextcloud
REDMINE_DB_PASSWORD: schoolcloud
REDMINE_SECRET_KEY_BASE: supersecretkey
REDMINE_DB_ENCODING: utf8
heimdall:
image: linuxserver/heimdall
restart: always
container_name: heimdall
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /home/docker_vol/heimdall/config:/config
ports:
- 80:80
- 443:443
restart: unless-stopped
gitlab:
privileged: true
image: gitlab/gitlab-ce
restart: always
ports:
- "5443:443"
- "82:82"
- "2222:22"
volumes:
- /home/docker_vol/gitlab/config:/etc/gitlab
- /home/docker_vol/gitlab/data:/var/opt/gitlab
- /home/docker_vol/gitlab/logs:/var/log/gitlab
tty: true
jenkins:
privileged: true
tty: true
image: jenkins/jenkins:2.289.1-lts-centos7
restart: always
ports:
- "9302:8080"
- "50000:50000"
volumes:
- /home/docker_vol/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
sonarqube:
restart: always
image: sonarqube
tty: true
environment:
- SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true
ports:
- "9000:9000"
制作整理不易,以上内容均为原创(参考了部分官方文档和老师整理的案例)。如要引用请附上本文链接,如有疑问可以在评论区畅所欲言,作者看到会第一时间回复,欢迎交流!