Docker-Compose部署OpenProject 如何跳过演示项目创建
OpenProject Docker部署跳过初始化演示项目方法
参照官方指南与官方部署项目,使用Docker Compose完成OpenProject安装部署时,可通过内置环境变量在初始化阶段跳过自动创建的Scrum project和Demo project两个演示项目,无需修改源码或自定义启动脚本。
配置步骤
在现有docker-compose.yml的x-op-app公共配置段的environment列表中,新增如下环境变量配置:
OPENPROJECT_SEED__DEMO__DATA: "false"
该变量是OpenProject预置的种子数据控制开关,设为false后,初始化阶段的seeder服务将不会加载演示项目相关的种子数据,也就不会自动生成两个示例项目。
注意事项
- 该配置仅在首次全新初始化时生效:如果OpenProject已经完成过启动流程、数据库中已经生成了演示项目,再添加该配置不会自动删除已有内容。这种场景下可以直接在后台项目管理页手动删除两个演示项目,或者清空
pgdata、opdata挂载卷后重新执行全新部署。 - 修改完配置文件后,全新部署直接执行启动命令即可;如果是修改已有部署的配置,执行
docker-compose up -d重启服务即可。
附:调整后的完整docker-compose.yml参考
version: "3.7" networks: frontend: backend: volumes: pgdata: opdata: x-op-restart-policy: &restart_policy restart: unless-stopped x-op-image: &image image: openproject/community:${TAG:-12} x-op-app: &app <<: *image <<: *restart_policy environment: RAILS_CACHE_STORE: "memcache" OPENPROJECT_CACHE__MEMCACHE__SERVER: "cache:11211" OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}" DATABASE_URL: "${DATABASE_URL:-postgres://postgres:p4ssw0rd@db/openproject?pool=20&encoding=unicode&reconnect=true}" RAILS_MIN_THREADS: 4 RAILS_MAX_THREADS: 16 # 设为true可开启邮件接收功能 IMAP_ENABLED: "${IMAP_ENABLED:-false}" # 新增以下配置跳过演示项目初始化 OPENPROJECT_SEED__DEMO__DATA: "false" volumes: - "${OPDATA:-opdata}:/var/openproject/assets" services: db: image: postgres:13 <<: *restart_policy stop_grace_period: "3s" volumes: - "${PGDATA:-pgdata}:/var/lib/postgresql/data" environment: POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-p4ssw0rd} POSTGRES_DB: openproject networks: - backend cache: image: memcached <<: *restart_policy networks: - backend proxy: <<: *image <<: *restart_policy command: "./docker/prod/proxy" ports: - "${PORT:-8080}:80" environment: APP_HOST: web OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}" depends_on: - web networks: - frontend web: <<: *app command: "./docker/prod/web" networks: - frontend - backend depends_on: - db - cache - seeder labels: - autoheal=true healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}/health_checks/default"] interval: 10s timeout: 3s retries: 3 start_period: 30s autoheal: image: willfarrell/autoheal:1.2.0 volumes: - "/var/run/docker.sock:/var/run/docker.sock" environment: AUTOHEAL_CONTAINER_LABEL: autoheal worker: <<: *app command: "./docker/prod/worker" networks: - backend depends_on: - db - cache - seeder cron: <<: *app command: "./docker/prod/cron" networks: - backend depends_on: - db - cache - seeder seeder: <<: *app command: "./docker/prod/seeder" restart: on-failure networks: - backend

内容的提问来源于stack exchange,提问作者1Z10
相关产品推荐
相关产品推荐

