Te traemos el arreglo a esta cuestión, o por lo menos eso pensamos. Si continuas con preguntas dínoslo, que sin pensarlo
Solución:
Puede conservar complementos entre recreaciones de contenedores agregando volúmenes de datos adicionales para conservarlos. Desde la generación de contenedores docker sin docker-compose
es un dolor, déjame usarlo para una explicación más detallada.
1. Crear docker-compose.yml
describiendo su configuración
Debería crear dos servicios (uno para MySQL y Redmine) en una red puente separada:
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: ""
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: ""
REDMINE_SECRET_KEY_BASE: "..."
restart: always
2. Implementa tu configuración
Simplemente ejecuta docker-compose up -d
desde el directorio donde puso su archivo de configuración.
3. Instale sus complementos (y temas) manualmente
Encuentre el nombre del contenedor que ejecuta Redmine con docker ps
; en mi sistema es root_redmine_1
. Ejecute lo siguiente para adjuntarlo:
# docker exec -ti root_redmine_1 gosu redmine bash
Abrirá un caparazón para el usuario "redmine" dentro del contenedor. Usar wget
y tar xjf
para descargar y extraer los complementos que necesita. Salga del caparazón cuando haya terminado.
4. Reinicie su instancia para verificar si los complementos funcionan
Emitir docker restart root_redmine_1
comando y ver si está funcionando como se suponía. Dado que los complementos se colocan en un volumen de datos separado, también deberían sobrevivir a la recreación del contenedor.
No es necesario explicar lo que se dijo en el nivel 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
La variable de entorno REDMINE_PLUGINS_MIGRATE
da la posibilidad de migrar directamente sus complementos! además no hay necesidad de entrar en el contenedor
Ahora solo necesitas usar git submodule add
con tu plugin git repositorio en ./redmine-plugins