如今是docker系列的最后一篇文章,这里直接实战吧。另外这一篇文章的代码没有测试。看一看就好,就不要实操了 主要是了解一套部署流程,由于实际工做中的流程操做用到的镜像都不是这些
gogs 是一个相似github的代码托管服务, 它简单方便易于使用,咱们使用它进行源代码管理.
将本目录下的docker-compose.yml 上传到服务器的 /root/gogs/docker-compose.yml
在服务器的 /root/gogs 中启动服务docker-compose up -d
.
访问服务器的 3000 端口并初始化服务.python
docker-compose.yml文件内容:git
version: '3.3' services: gogs: image: gogs/gogs restart: always volumes: # 将 gogs 的数据文件存储在本机 - "./data/gogs:/data" ports: - "3000:3000" environment: - "RUN_CROND=true" depends_on: - postgres postgres: image: postgres:9.5 restart: always volumes: # 将数据库文件存储到本机,以避免丢失 - "./data/postgresql:/var/lib/postgresql" ports: - "127.0.0.1:5432:5432" environment: # 数据库的链接信息 - "POSTGRES_USER=admin" - "POSTGRES_PASSWORD=123456" - "POSTGRES_DB=gogs"
打开<server ip>:3000
,会看到以下
![]()
修改数据库用户为:admin, 用户密码:123456. 数据库主机改成你的服务器ip
点击安装
drone 是一个轻便简介的持续继承服务器程序。持续继承服务器的功能是咱们提交代码后自动拉取,自动运行预先配置好的测试
以确保及发现代码中的bug。在代码测试失败后,咱们能够配置经过微信,短信,邮箱等方式接收通知以便于即便修复bug
在代码测试成功后,咱们能够配置自动部署到线上生产环境,这个过程叫持续部署
将本目录下的docker-compose.yml 上传到服务器的 /root/drone/docker-compose.yml. 在服务器的 /root/drone 中启动服务docker-compose up -d
因为docker-compose.yml 中配置了gogs, 因此如今能够访问服务器的8000端口并使用gogs的帐号登陆, 它会在登陆后自动同步咱们存放在gogs中的项目
文件内容以下:github
version: '3' services: server: image: drone/drone:0.8.6 ports: - 8000:8000 volumes: - ./data/drone:/var/lib/drone/ restart: always environment: # false 表示禁止注册 - DRONE_OPEN=false # DRONE_ADMIN 配置的用户做为管理员 - DRONE_ADMIN=kuaibiancheng.com # 本机主机名 - DRONE_HOST=http://111.231.98.114 # 随机输入一个字符串 - DRONE_SECRET=random_string_123 # 使用 gogs 服务 - DRONE_GOGS=true # gogs 的地址 - DRONE_GOGS_URL=http://111.231.98.114:3000 # gogs 的 git 用户名 - DRONE_GOGS_GIT_USERNAME=kuaibiancheng.com # 密码 - DRONE_GOGS_GIT_PASSWORD=123 # 私有模式 - DRONE_GOGS_PRIVATE_MODE=true # 关闭 ssl 验证(咱们没有配置 https 访问) - DRONE_GOGS_SKIP_VERIFY=true agent: image: drone/agent:0.8.6 command: agent restart: always depends_on: - server volumes: # 这样才能够在容器中使用宿主机的 Docker 服务 - /var/run/docker.sock:/var/run/docker.sock environment: # secret 和上面的 DRONE_SECRET 配置一致 - DRONE_SECRET=random_string_123 # 上面的 server 服务的 9000 端口 - DRONE_SERVER=server:9000
首先在drone 的网页中打开对仓库的监听, 点开仓库的详细页面
drone 使用 .drone.yml 文件配置自动测试. 若是drone监听了一个仓库,仓库的根目录下有.drone.yml文件
drone就会使用.drone.yml 文件中定义的步骤测试代码并作一些自定义的操做
自定义的操做包括通知,自动部署等
详见.drone.yml 文件sql
pipeline: run: image: python:3.7-alpine3.8 commands: - python3 test.py deploy: image: appleboy/drone-ssh host: 115.159.181.16 username: ubuntu secrets: [ ssh_key ] port: 22 script: - cd /home/ubuntu/test - git pull - sudo sh reload.sh
若是你有其余需求,下面是drone 的文档地址,请自行参阅
http://readme.drone.io/docker