#事前準備
AWS EC2にDockerでDocker Compose(1.29.2)を導入 を参照してDocker Composeを利用できる環境を準備しておきます。
#作業ディレクトリに移動
[ec2-user@ip-xxx-xx-xx-xxx container01]$ cd /home/docker/container01
#docker-compose.ymlを作成
作成したdocker-compose.ymlは以下に配置。
/home/docker/container01
├ docker-compose.yml
今回も試すにあたり、AWS EC2にDockerでRedmineを導入 を参照させて頂きました。
- コンテナはRedmine、MySQLを分けてymlファイルを作成
- Redmineのベースイメージには「redmine:passenger」(※1)を指定
- portsには3000番ポートを指定
- volumesにはコンテナ破棄とともにデータが失われないように、外部マウント先(コンテナ外)のストレージに保存
- MySQLのベースイメージには「mysql:5.7」を指定(執筆時点の最新)
※1
Phusion Passenger(非公式にはmod_railsとmod_rackともいう)は、Apache上でRedmaine等Ruby on Railsアプリケーションを実行するためのソフトウェア
version: '3.9'
services:
redmine:
image: redmine:passenger
container_name: redmine
ports:
- 3000:3000
environment:
TZ: Asia/Tokyo
REDMINE_DB_MYSQL: mysql
REDMINE_DB_DATABASE: redmine
REDMINE_DB_USERNAME: redmine
REDMINE_DB_PASSWORD: redmine
REDMINE_DB_ENCODING: utf8
depends_on:
- mysql
restart: always
volumes:
- /var/www/redmine/files:/usr/src/redmine/files
- /var/www/redmine/log:/usr/src/redmine/log
- /var/www/redmine/plugins:/usr/src/redmine/plugins
- /var/www/redmine/public/themes:/usr/src/redmine/public/themes
mysql:
image: mysql:5.7
container_name: mysql
restart: always
environment:
TZ: Asia/Tokyo
MYSQL_ROOT_PASSWORD: devops
MYSQL_DATABASE: redmine
MYSQL_USER: redmine
MYSQL_PASSWORD: redmine
volumes:
- mysql-data:/var/lib/mysql
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
volumes:
mysql-data:
name: mysql-redmine
#docker-composeコマンドを実行し、Dockerコンテナ(複数)をバックグラウンド起動
[ec2-user@ip-xxx-xx-xx-xxx container01]$ docker-compose up -d
Creating network "container01_default" with the default driver
Creating volume "mysql-redmine" with default driver
Pulling mysql (mysql:5.7)...
5.7: Pulling from library/mysql
69692152171a: Pull complete
1651b0be3df3: Pull complete
951da7386bc8: Pull complete
0f86c95aa242: Pull complete
37ba2d8bd4fe: Pull complete
6d278bb05e94: Pull complete
497efbd93a3e: Pull complete
a023ae82eef5: Pull complete
e76c35f20ee7: Pull complete
e887524d2ef9: Pull complete
ccb65627e1c3: Pull complete
Digest: sha256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Status: Downloaded newer image for mysql:5.7
Pulling redmine (redmine:passenger)...
passenger: Pulling from library/redmine
69692152171a: Already exists
0a1f774fea41: Pull complete
3b32b9ebaa42: Pull complete
8115e4beca50: Pull complete
f6fc87221cc8: Pull complete
fecc3ffdf342: Pull complete
2c0766a9fc7f: Pull complete
ce9a5ea49a97: Pull complete
3e4aa5d089ef: Pull complete
76af3ce3b4e9: Pull complete
996a27fc010d: Pull complete
343439c2257c: Pull complete
c3f9dc058e2a: Pull complete
e46a18da2156: Pull complete
Digest: sha256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Status: Downloaded newer image for redmine:passenger
Creating mysql ... done
Creating redmine ... done
#コンテナの状態を確認
[ec2-user@ip-xxx-xx-xx-xxx container01]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d96ebfc23a2 redmine:passenger "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp redmine
be9531f677b2 mysql:5.7 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 3306/tcp, 33060/tcp mysql
#MySQLのコンフィグを設定
[ec2-user@ip-xxx-xx-xx-xxx container01]$ sudo docker exec -it mysql mysql_config_editor set --host=localhost --user=redmine --password
Enter password: ←★任意のパスワードを入力
#Redmine向けにEC2のポートを開放
作成した「docker-compose.yml」ではポート3000番を指定したため、EC2の「セキュリティグループ」を表示してインバウンドルールに3000番ポートを追加する必要があります。
#Redmineにアクセス
ブラウザを起動し、 http://[Elastic IP アドレス]:3000
にアクセスする。
以下のようにRedmine画面が表示されれば完了。
#次回の予定
AWS EC2にDocker ComposeでJenkinsを導入する記事を投稿予定。