0%

使用 Docker 创建 redmine 环境

使用 Docker 创建 redmine 环境

本文使用 2 种方式创建 redmine 环境。

操作系统版本:CentOS 7.3

Docker 版本:17.03.0-ce

使用 docker 命令创建 redmine 环境

下载所需镜像

1
2
docker pull mysql
ducker pull redmine

准备 MySQL 配置文件

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
mkdir -p /home/docker/redmine
cat > /home/docker/redmine/my.cnf << EOF
[client]

port = 3306
default-character-set = utf8
socket = /var/run/mysqld/mysqld.sock

[mysql]

port = 3306
default-character-set = utf8
socket = /var/run/mysqld/mysqld.sock
prompt = 'MySQL[\\u@\\d]> '
no-auto-rehash

[mysqld]

# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
character-set-server = utf8
port = 3306

# MyISAM #
key-buffer-size = 32M
#myisam-recover = FORCE,BACKUP

# SAFETY #
max-allowed-packet = 1024M
max-connect-errors = 1000000

# DATA STORAGE #
basedir = /usr
datadir = /var/lib/mysql

# BINARY LOGGING #
server_id = 1
#log-bin = /var/log/mysql/mysql-bin
#expire-logs-days = 3
sync-binlog = 1
relay_log_recovery = 1
relay-log = /var/log/mysql/relay-log
binlog_format = row

# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 50
open-files-limit = 65535
table-definition-cache = 1024
table-open-cache = 2048

# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 128M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 1G
innodb_buffer_pool_instances = 1

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
skip-name-resolve
skip-external-locking
init-connect = 'SET NAMES utf8'

# LOGGING #
log-error = /var/log/mysql/error.log
log-queries-not-using-indexes = 1
#slow-query-log = 1
#slow-query-log-file = /var/log/mysql/slow.log
#general-log = 1
#general_log_file = /var/log/mysql/general.log
#long_query_time = 3
log_timestamps = system

[mysqld_safe]

log-error = /var/log/mysql/error.log
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
nice = 0

[mysqldump]

socket = /var/run/mysqld/mysqld.sock
quick
max_allowed_packet = 1024M

[myisamchk]

key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
log = /var/log/mysql/mysqld_multi.log

EOF

启动容器

1
2
docker run -d --name redmine_db_1 -v /home/docker/redmine:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=example -e MYSQL_DATABASE=redmine mysql
docker run -d --name redmine_redmine_1 --link redmine_db_1:mysql -p 3000:3000 redmine

最后登录:http://ip:3000 重置管理员密码。

使用 docker-compose 命令创建 redmine 环境

编写 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
cat > /home/docker/redmine/docker-compose.yml << EOF
version: '2'

services:

redmine:
image: redmine
ports:
- 3000:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: example
depends_on:
- db
restart: always

db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: redmine
volumes:
- /home/docker/redmine:/etc/mysql/conf.d
restart: always

EOF

启动容器

1
docker-compose up -d

查看容器进程

1
2
3
4
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
09fecc7fca5b redmine "/docker-entrypoin..." 9 seconds ago Up 9 seconds 0.0.0.0:3000->3000/tcp redmine_redmine_1
4df9d06426e1 mysql "docker-entrypoint..." 10 seconds ago Up 9 seconds 3306/tcp redmine_db_1

参考