blackandred.server_docker_project

Docker化项目

从GIT自动部署Docker化环境,包括:

  • systemd集成
  • 生产特定的.env配置
  • 测试服务器特定的.env配置(当:主机等于localhost时)
  • 支持Makefile来管理项目
  • 可选:项目库中的加密 .env-prod 文件,部署时解密

前提条件

  1. 你需要在任意git服务器上有一个项目。
  2. 项目需要有一个包含“deployment_pre”任务的Makefile。
  3. 项目需要有一个.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: 移除域后缀' }

故障排除

  1. 以用户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' }
关于项目

Docker-based project environment setup

安装
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)