【问题标题】:Install redmine plug-in using docker container使用 docker 容器安装 redmine 插件
【发布时间】:2023-03-30 18:59:01
【问题描述】:

我可以使用这 2 个命令安装 redmine。

docker run --name myred1 -e MYSQL_ROOT_PASSWORD=india -e MYSQL_DATABASE=redmine -v /my/custom:/etc/mysql/conf.d  -v /storage/mysql/datadir:/var/lib/mysql -d mysql:5.6

docker run --name abt -p 3000:3000 -v /my/own/datadir:/usr/src/redmine/files --link myred1:mysql -d redmine

但是我该如何安装 scrum 插件呢?

http://www.redmine.org/plugins/scrum-plugin

根据安装说明...

从插件页面的文件部分下载。

与任何Redmine插件一样,只需将其部署在plugins文件夹中,确保文件夹名称为scrum,然后运行:

bundle exec rake redmine:plugins:migrate

我在命令提示符下尝试了上述命令(在 docker 容器中)

root@d7b535b9c607:/usr/src/redmine/plugins/scrum# bundle exec rake redmine:plugins:migrate
(in /usr/src/redmine)

但它不安装插件。

【问题讨论】:

    标签: docker redmine-plugins


    【解决方案1】:

    您可以在容器重新创建之间保留插件,方法是添加额外的数据卷来保留它们。由于在没有docker-compose 的情况下生成 docker 容器很痛苦,让我用它来进一步解释。

    1。创建 docker-compose.yml 描述您的设置

    它应该在一个单独的桥接网络中创建两个服务(MySQL 和 Redmine 各一个):

    version: '2'
    
    networks:
      redmine-network:
    
    volumes:
      redmine-plugins:
      redmine-themes:
      redmine-data:
    
    services:
      mysql-for-redmine:
        image: mysql:5.6
        networks:
          - redmine-network
        volumes:
          # Consider using separate volume containers
          # instead of host directory mounts.
          - /my/custom:/etc/mysql/conf.d
          - /storage/mysql/datadir:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: "<india>"
          MYSQL_DATABASE:      "redmine"
    
      redmine:
        image: redmine:3.3-passenger
        ports:
          - 3000:3000
        networks:
          - redmine-network
        volumes:
          - redmine-plugins:/usr/src/redmine/plugins
          - redmine-themes:/usr/src/redmine/public/themes
          - redmine-data:/usr/src/redmine/files
        environment:
          # Host name matches the MySQL container name.
          REDMINE_DB_MYSQL:        "mysql-for-redmine"
          REDMINE_DB_USERNAME:     "root"
          REDMINE_DB_PASSWORD:     "<india>"
          REDMINE_SECRET_KEY_BASE: "..."
        restart: always
    

    2。部署你的配置

    只需从您放置配置文件的目录中运行docker-compose up -d

    3。手动安装插件(和主题)

    docker ps查找运行Redmine的容器的名称;在我的系统上是root_redmine_1。运行以下命令附加到其中:

    # docker exec -ti root_redmine_1 gosu redmine bash
    

    它将为容器内的“redmine”用户打开一个外壳。使用wgettar xjf 下载并解压您需要的插件。完成后退出 shell。

    4。重新启动您的实例以检查插件是否工作

    投射docker restart root_redmine_1 命令并查看它是否按预期工作。由于插件放置在单独的数据卷上,因此它们也应该能够在容器重新创建后继续存在。

    【讨论】:

    • 在环境变量的情况下,我可以使用一致的语法,如 - REDMINE_DB_MYSQL= 而不是 REDMINE_DB_MYSQL: ?
    • 我明白这一点。 # 环境不接受=,因为它是一个字典,就像图像。卷和端口是列表。
    • bundle install 之前,您可能需要apt update &amp; apt install make gcc
    • 如果您使用docker-compose,则无需直接制定docker 命令。使用docker-compose exec redmine bashdocker-compose restart
    【解决方案2】:

    不需要解释 docker-composer 层面说了什么

    version: '3'
    services:
    
      redmine:
        image: redmine
        restart: always
        ports:
          - 3000:3000
        environment:
          - REDMINE_DB_MYSQL=mysql_redmine
          - REDMINE_DB_USERNAME=root
          - REDMINE_DB_PASSWORD=pass
          - REDMINE_PLUGINS_MIGRATE=true
        volumes:
          - ./redmine_data:/usr/src/redmine/files
          - ./redmine-plugins:/usr/src/redmine/plugins
    
      mysql_redmine:
        image: mysql:5.7
        restart: always
        environment:
          - MYSQL_ROOT_PASSWORD=pass
          - MYSQL_DATABASE=redmine
        volumes:
          - ./mysql-data_red:/var/lib/mysql 
    

    环境变量REDMINE_PLUGINS_MIGRATE 提供了直接迁移插件的可能性! 也无需进入容器

    现在您只需将git submodule add./redmine-plugins 中的插件git 存储库一起使用

    【讨论】:

      【解决方案3】:
      # if the name of the redmine container is abt then use the following command to login:
      docker exec -it abt bash
      
      # change to plugins directory
      cd plugins
      
      # download source code
      wget https://redmine.ociotec.com/attachments/download/440/scrum%20v0.16.2.tar.gz
      
      # extract
      tar xvf scrum\ v0.16.2.tar.gz
      
      # install
      bundle exec rake redmine:plugins:migrate
      
      # restart container: 
      docker restart abt
      

      【讨论】:

      • 以这种方式做事,你将失去所有在容器重建中的插件。
      • 我可以提交容器并使用我的所有插件创建一个新镜像吗?
      猜你喜欢
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多