blackandred.server_docker_project
Docker化项目
从GIT自动部署Docker化环境,包括:
- systemd集成
- 生产特定的.env配置
- 测试服务器特定的.env配置(当:主机等于localhost时)
- 支持Makefile来管理项目
- 可选:项目库中的加密 .env-prod 文件,部署时解密
前提条件
- 你需要在任意git服务器上有一个项目。
- 项目需要有一个包含“deployment_pre”任务的Makefile。
- 项目需要有一个
.env
文件,或者.env-template
,该文件将被复制到.env
中。
环境
# 部署应用的用户
deploy_user: tech.admin
deploy_group: technical
compose_env_name: "your-docker-compose-environment-name-there"
systemd_service_sleep: 30
project_dir: /project
# 如果你有一个为特定用户组执行的root入口点,请将其更改为sg. "./make.sh"
# 此处请勿使用sudo(避免sudo的嵌套使用)
make_executable: "./make.sh"
# 该源将在部署时设置
git_deploy_url: https://user:password@somehost/someuser/somerepo
# 如果没有用户和密码,这种形式将保留在服务器上
git_regular_deploy_url: https://somehost/someuser/somerepo
# 防止在重复部署项目时重启整个环境
avoid_whole_environment_restart: yes
#
# 从备份恢复,当第一次部署时,你可能想从备份恢复整个环境
# 或在发生故障时。通常,此标志应手动设置每次部署。
#
# 仅当你在外部服务器上设置了文件库实例以存储备份时。
#
restore_from_backup_with_recovery_plan: no
# 优先使用 .env-prod(如果在克隆的git库中存在)而不是 .env-dist
prefer_env_prod_over_dist: yes
# 支持 .env(也适用于 .env-prod)
test_specific_env:
- { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: 添加域后缀 - .localhost' }
production_specific_env:
- { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: 移除域后缀' }
故障排除
- 以用户X进行配置,但是以用户Y运行Riotkit的Harbor
这可能会让Makefile感到困惑,究竟谁应该运行非特权命令。 解决方案是跳过用户自动检测,通过将用户和组ID硬编码到.env文件中。
test_specific_env:
- { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: 添加域后缀 - .localhost' }
- { line: "APP_USER=tech.admin", regexp: '^APP_USER', title: 'env: APP_USER' }
- { line: "APP_GROUP_ID=1800", regexp: '^APP_GROUP_ID', title: 'env: APP_GROUP_ID' }
production_specific_env:
- { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: 移除域后缀' }
- { line: "APP_USER=tech.admin", regexp: '^APP_USER', title: 'env: APP_USER' }
- { line: "APP_GROUP_ID=1800", regexp: '^APP_GROUP_ID', title: 'env: APP_GROUP_ID' }
安装
ansible-galaxy install blackandred.server_docker_project
许可证
other
下载
137
拥有者
ZSP is a grassroot organization acting for workers self-organization. Is a part of the International Workers Association (iwa-ait.org)