docker_redmine搭建
部署
- 先找官方的,在拉下来
1 | root@ubuntu:~# docker search redmine |
run启动,也可以使用 [docker-compose 方式](#docker-compose 方式) 启动
- 先新建几个文件夹,用来挂载容器的数据
1
2mkdir -p /opt/redmine/mysql_data
mkdir -p /opt/redmine/data- 先启动 mysql
1
2
3
4
5
6
7
8docker run -d \
--restart=always \
--name mysql_redmine \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=redmine \
-p 3307:3306 \
-v /opt/redmine/mysql_data:/var/lib/mysql \
mysql再启动 redmine
1
2
3
4
5
6
7
8
9
10
11docker run -d \
-p 8090:3000 \
--restart=always \
--name my_redmine \
-v /opt/redmine/data:/usr/src/redmine/files \
-e "LANG=en_US.UTF-8" \
-e REDMINE_DB_DATABASE=redmine \
-e REDMINE_DB_USERNAME=root \
-e REDMINE_DB_PASSWORD=123456 \
--link mysql_redmine:mysql \
redmine
3. 默认用户名和密码都是:admin
docker-compose 方式
docker-compose.yml 文件内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31version: '2'
services:
redmine:
image: redmine:latest
container_name: my_redmine22
restart: always
ports:
- 8092:3000
environment:
- "LANG=en_US.UTF-8"
- "REDMINE_DB_DATABASE=redmine"
- "REDMINE_DB_USERNAME=root"
- "REDMINE_DB_PASSWORD=123456"
volumes:
- /opt/redmine/data:/usr/src/redmine/files
depends_on:
- mysql_db
links:
- mysql_db
mysql_db:
image: mysql:latest
container_name: mysql_redmine22
restart: always
ports:
- 3308:3306
environment:
- "MYSQL_ROOT_PASSWORD=123456"
- "MYSQL_DATABASE=redmine"
volumes:
- /opt/redmine/mysql_data:/var/lib/mysql启动、查看、停止、移除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19wilker@ubuntu:~/Desktop/a_redmine$ docker-compose up -d # 启动
Creating mysql_redmine22
Creating my_redmine22
wilker@ubuntu:~/Desktop/a_redmine$ docker-compose ps # 查看
Name Command State Ports
---------------------------------------------------------------------------------
my_redmine22 /docker-entrypoint.sh rail ... Up 0.0.0.0:8092->3000/tcp
mysql_redmine22 docker-entrypoint.sh mysqld Up 0.0.0.0:3308->3306/tcp
wilker@ubuntu:~/Desktop/a_redmine$ docker-compose stop # 停止
Stopping my_redmine22 ... done
Stopping mysql_redmine22 ... done
wilker@ubuntu:~/Desktop/a_redmine$ docker-compose rm # 移除
Going to remove my_redmine22, mysql_redmine22
Are you sure? [yN] y
Removing my_redmine22 ... done
Removing mysql_redmine22 ... done
邮件通知
这里以配置 qq 邮箱为例,先要在 qq 邮箱开启 smtp 服务,并生产授权码(这里称 auth_code),其实配置差不多和 gitlab 中的 邮件通知配置 差不多,参照 docker_gitlab搭建.md
启动容器后默认是没有开启邮件通知, 管理 -> 配置 -> 邮件通知
进入 qq 邮箱, 设置 -> 账号 ,生产授权码 auth_code
先配置域名,邮件通知内容里的连接调转,管理 -> 配置 -> 一般 ,主机名称 修改为
www.xxx.com:8080
进入容器内,修改配置文件 /usr/src/redmine/config/configuration.yml ,这个文件并不存在,不过有个样本 /usr/src/redmine/config/configuration.yml.example 可以直接复制修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37docker exec -it some-redmine bash
root@471dce18ac7a:/usr/src/redmine# cd config
root@471dce18ac7a:/usr/src/redmine/config# cp configuration.yml.example configuration.yml # 复制出一份 configuration.yml
root@471dce18ac7a:/usr/src/redmine/config# vi configuration.yml # 这个容器里是没有vi命令的,我是利用启动时挂载了目录到宿主机子中(-v /root/a_redmine/datadir:/usr/src/redmine/files),是移到宿主机子中 vi 修改
注释掉这两行
production:
development:
加入以下内容
production:
email_delivery:
delivery_method: :async_smtp
async_smtp_settings:
address: "smtp.qq.com"
port: 465
ssl: true
authentication: :login
domain: 'qq.com'
user_name: '364105996@qq.com'
password: 'auth_code' # 这里填入的不是 qq 密码,而是刚才生成的 授权码,下同
enable_starttls_auto: true
openssl_verify_mode: 'none'
development:
email_delivery:
delivery_method: :async_smtp
async_smtp_settings:
address: "qq.com"
port: 465
ssl: true
authentication: :login
domain: 'smtp.qq.com'
user_name: '364105996@qq.com'
password: 'auth_code'
enable_starttls_auto: true
openssl_verify_mode: 'none'- async_smtp:是异步通知邮件
退出容器并重启
1
2
3
4root@471dce18ac7a:/usr/src/redmine/config# exit
exit
root@ubuntu:~/a_redmine/datadir# docker restart some-redmine
some-redmine然后再配置 邮件通知 ,此时就可以显示出来了, 邮件发件人地址 一定要和 configuration.yml 配置文件 中的 user_name 一致,然后根据需求勾选需要通知的内容
在右下角有个 发送测试邮件 ,点击测试,配置成功就能收到邮件了
踩坑记录
发送邮件时发生错误 535
在 configuration.yml 配置中的 password 填成了qq密码,正确的应该是生成的授权码 auth_code
找不到 新建问题
redmine docker 容器 一部署就立马 Exit 或者 无限 Restart
可能是没有清楚之前部署后在挂载的两个目录中由残留垃圾,需要清赶紧在重新部署 mysql 和 redmine。(如无需备份,直接 rm -fr)
1
2sudo rm -fr /opt/redmine/mysql_data/*
sudo rm -fr /opt/redmine/data/*
清除指令
懒癌发作就这样记录下 清空 容器 及 数据 的指令
1
2
3
4docker stop my_redmine && docker rm my_redmine
docker stop mysql_redmine && docker rm mysql_redmine
sudo rm -fr /opt/redmine/mysql_data/*
sudo rm -fr /opt/redmine/data/*