首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenProject文档撰写:如何跳过演示项目的创建?

OpenProject文档撰写:如何跳过演示项目的创建?
EN

Stack Overflow用户
提问于 2022-06-10 16:18:54
回答 1查看 300关注 0票数 3

我按照官方指南和github项目安装了使用Docker的OpenProject:

这是对应的docker-compose.yml文件:

代码语言:javascript
复制
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
    # set to true to enable the email receiving feature. See ./docker/cron for more options
    IMAP_ENABLED: "${IMAP_ENABLED:-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

是否有一个环境变量或脚本选项可以用来跳过两个演示项目的创建:Scrum projectDemo project

相关信息:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-17 21:57:05

这里没有env变量,也没有脚本选项,因此没有内置的方式来避免首先创建这些项目。

但是,在创建项目之后,可以删除它们。这可以通过修改docker_compose.yml文件(如果需要重新创建)或在之后运行一次命令来实现。

要运行的命令是:

代码语言:javascript
复制
rails runner "::Projects::ScheduleDeletionService.new(user: User.admin.active.first, model: Project.find('your-scrum-project')).call; ::Projects::ScheduleDeletionService.new(user: User.admin.active.first, model: Project.find('demo-project')).call"

由于这种情况需要发生在其中一个容器中,因此可以通过修改容器的seeder来读取该容器的command,从而使用该容器进行此操作:

代码语言:javascript
复制
command: "./docker/prod/seeder && rails runner \"::Projects::ScheduleDeletionService.new(user: User.admin.active.first, model: Project.find('your-scrum-project')).call; ::Projects::ScheduleDeletionService.new(user: User.admin.active.first, model: Project.find('demo-project')).call\""

或者,使用docker-compose run seeder sh -c [that lengthy command]来实现同样的目标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72577268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档