Help us understand the problem. What is going on with this article?

Amazon Elastic Container Service で Redmine を動かしてみる

More than 1 year has passed since last update.

はじめに

Macintosh を使用して ECS で Redmine を起動する手順をまとめてみました。
学習のためにとりあえず動かしてみる手順に過ぎないため、実運用で使用するためにはまだまだ改善が必要です。

開発PC(Mac)のdocker環境での動作検証

Docker for Mac のインストール

Docker Desktop for Mac

docker-compose のインストール

Docker Compose のインストール

ファイルの作成

 mkdir ~/docker-redmine/postgresql/data
 mkdir ~/docker-redmine/redmine/data
 vi ~/docker-redmine/docker-compose.yml
docker-compose.yml
version: '2'

services:
  postgresql:
    image: sameersbn/postgresql:9.6-4
    environment:
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production
    volumes:
    - ./postgresql/data:/var/lib/postgresql

  redmine:
    image: sameersbn/redmine:4.0.3-1
    depends_on:
    - postgresql
    environment:
    - TZ=Asia/Kolkata

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production

    - REDMINE_PORT=80
    - REDMINE_HTTPS=false
    - REDMINE_RELATIVE_URL_ROOT=
    - REDMINE_SECRET_TOKEN=

    - REDMINE_SUDO_MODE_ENABLED=false
    - REDMINE_SUDO_MODE_TIMEOUT=15

    - REDMINE_CONCURRENT_UPLOADS=2

    - REDMINE_BACKUP_SCHEDULE=
    - REDMINE_BACKUP_EXPIRY=
    - REDMINE_BACKUP_TIME=

    - SMTP_ENABLED=false
    - SMTP_METHOD=smtp
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=:login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_INTERVAL=30

    ports:
    - "80:80"
    links:
    - postgresql
    volumes:
    - ./redmine/data:/home/redmine/data

コンテナ起動

cd ~/docker-redmine/
docker-compose build
docker-compose up

しばらく待って http://localhost/ でレッドマインのページが表示されたらOKです。

Amazon Elastic Container Service での起動

aws-cli のインストールと設定

AWS CLIのインストール

ecs-cli のインストールと設定

Amazon ECS CLI のインストール
設定保存

ecs-cli configure --region ap-northeast-1 --cluster ecs-cli-test

設定ファイルの作成

vi ~/docker-redmine/docker-compose-ecs.yml
docker-compose-ecs.yml
version: '2'

services:
  postgresql:
    image: sameersbn/postgresql:9.6-4
    environment:
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production

  redmine:
    image: sameersbn/redmine:4.0.3-1
    environment:
    - TZ=Asia/Kolkata

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production

    - REDMINE_PORT=80
    - REDMINE_HTTPS=false

    - REDMINE_SUDO_MODE_ENABLED=false
    - REDMINE_SUDO_MODE_TIMEOUT=15

    - REDMINE_CONCURRENT_UPLOADS=2

    - SMTP_ENABLED=false
    - SMTP_METHOD=smtp
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=:login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_INTERVAL=30

    ports:
    - "80:80"
    links:
    - postgresql

EC2 キーペアの作成

Amazon EC2 を使用してキーペアを作成する

クラスタの起動

Redmine を動かすためには最低このくらいは必要みたいです。
keypair には上記で作成済みのキーペア名を入力します。

ecs-cli up --keypair ec2-test-key --capability-iam --size 2 --instance-type t2.small

タスクの登録

タスクの作成から実行までを行おうとしますが、必要な設定が足りていないためエラーで失敗します。

ecs-cli compose -f docker-compose-ecs.yml up

AWSコンソールでのタスク修正

ECS のタスク定義:docker-redmine の詳細画面より「新しいリビジョンの作成」を実施。
docker-compose-ecs.yml にてコメントアウトしている内容をおもに登録します。
以下の登録を行い「作成」を実行。

ボリュームの登録

ボリューム
名前
postgresql-vol
ドライバー
local
ボリュームタイプ
Docker
スコープ
task

名前
redmine-vol
ドライバー
local
ボリュームタイプ
Docker
スコープ
task

コンテナ postgresql の設定修正

HEALTHCHECK Command の追加

CMD-SHELL,psql -d redmine_production -U redmine || exit 1
  • 環境:基本 のチェックボックスをOFF
  • ストレージとログ マウントポイントに postgresql-vol を選択
    • path: /var/lib/postgresql
  • Auto-configure CloudWatch Logs のチェックボックスを ON

コンテナ redmine の設定修正

  • STARTUP DEPENDENCY ORDERING
    • Container name:postgresql
    • Condition:HEALTHY
  • ストレージとログ マウントポイントに redmine-vol を選択
    • path: /home/redmine/data
  • Auto-configure CloudWatch Logs のチェックボックスを ON

AWSコンソールでのタスク実行

タスク定義:docker-redmine の最新版の詳細画面より、「タスクの実行」を実行。
EC2 起動タイプを使用してタスクを実行する。
起動したらタスクの詳細の redmine コンテナの詳細に外部リンクが表示されるのでクリック。
レッドマインの画面が無事出てきたらOK。

クラスタの削除

以下のコマンドでクラスタに関連するリソースを全て削除します。
タスク定義ファイルは残ります。

ecs-cli down --force

改善点

AWS コンソールでの操作が面倒なので、コマンドラインで設定を完結できるように修正したいです。

maru0
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away