docker redmine + mysql


Делал на Centos7
Ставим epel и docker.Запускаем docker как сервис.
Создаем контейнер mariadb с постоянным хранилищем на хост машине
docker run --name=mysql-redmine -d -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD=some-pass --volume=/srv/docker/redmine/mysql:/var/lib/mysql mariadb
Потом контейнером можно управлять командами
docker stop/start
При необходимости можно создать базу руками подключившись mysql -h 127.0.0.1 -u root -p и импортировать в нее дамп,в случае,если имеет место перенос.

Создаем контейнер redmine с постоянным хранилищем и линком на контейнер с mysql
docker run -d --name redmine -v /srv/docker/redmine/redmine/:/usr/src/redmine/files --link mysql-redmine:mysql -p 80:3000 redmine
Порт вывешиваем на 80-й порт хоста.
Ну и в завершение создаем файлы сервисов для systemd
cat /etc/systemd/system/docker.redmine.service
[Unit]
Description=Redmine Service
After=docker.service
Requires=docker.service
After=docker.mysql.service
Requires=docker.mysql.service

[Service]
TimeoutStartSec=10
Restart=on-failures
ExecStartPre=-/usr/bin/docker stop redmine
ExecStart=/usr/bin/docker run --name=redmine --rm --link=mysql-redmine:mysql \
--publish=80:3000 \
--volume=/srv/docker/redmine/redmine:/usr/src/redmine/files redmine

[Install]
WantedBy=multi-user.target

Тут при каждом запуске контейнер удаляется и создается заново.

cat /etc/systemd/system/docker.mysql.service
[Unit]
Description=Mysql Service
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
Restart=on-failures
ExecStartPre=-/usr/bin/docker stop mysql-redmine
ExecStart=/usr/bin/docker start mysql-redmine

[Install]
WantedBy=multi-user.target

Тут мы просто делаем старт/стоп,ничего не удаляя.
И в конце
systemctl enable docker.redmine.service
systemctl enable docker.mysql.service