Redmine構築

EC2サーバーにDockerをインストールし、DockerイメージからRedmineを構築する。

必要なスペックは以下。

  • インスタンス:t3a.medium
  • ボリューム:50

インスタンス変更、ボリューム拡張は以下の記事を参考にすること。

Dockerがインストールされていない場合は以下を参考にすること。

Dockerのインストール

自己署名証明書の作成

作業ディレクトリを作成

sudo mkdir -p /opt/redmine/nginx/conf.d
sudo mkdir -p /opt/redmine/nginx/certs

自己署名証明書を作成

作成したフォルダに移動する。

cd /opt/redmine/nginx/certs

秘密鍵を生成する。

sudo openssl genrsa -out redmine.key 2048

鍵(redmine.key)が作成されたことを確認する。

権限を調整する。

sudo chmod 600 redmine.key

下記のコードを一括貼り付けして実行し、証明書設定ファイルを作成する。
※ IP アドレス部分(2か所)を書き換えること。

sudo tee redmine-ip.cnf > /dev/null <<'EOF'
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
x509_extensions = v3_req
distinguished_name = dn

[ dn ]
C = JP
O = YourCompany
OU = IT
CN = 10.0.0.123

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
IP.1 = 10.0.0.123
EOF

ファイルの内容を確認する。

cat redmine-ip.cnf

自己署名証明書を作成する。

sudo openssl req -x509 -new -nodes -key redmine.key -days 36500 -out redmine.crt -config redmine-ip.cnf

証明書(redmine.crt)が作成されたことを確認する。

ll

nginx・Docker Compose の設定

nginx 設定ファイル(redmine.conf)を作成

下記のコードを一括貼り付けして実行し、nginx 設定ファイルを作成する。

sudo tee /opt/redmine/nginx/conf.d/redmine.conf > /dev/null <<'EOF'
server {
    listen 443 ssl http2;
    server_name_;

    ssl_certificate /etc/nginx/certs/redmine.crt;
    ssl_certificate_key /etc/nginx/certs/redmine.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 50m;

    location /redmine/ {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Prefix /redmine;

        proxy_pass http://redmine:3000/;
    }
}
EOF

ファイルの内容を確認する。

cat /opt/redmine/nginx/conf.d/redmine.conf

docker-compose.yml を作成

下記のコードを一括貼り付けして実行し、 docker-compose.yml ファイルを作成する。
※ 2か所ある change_me_db_password は必ず変更すること。

docker-compose.yml の作成

sudo tee /opt/redmine/docker-compose.yml > /dev/null <<'EOF'
services:
  db:
    image: postgres:16
    container_name: redmine-db
    restart: unless-stopped
    environment:
      POSTGRES_DB: redmine
      POSTGRES_USER: redmine
      POSTGRES_PASSWORD: change_me_db_password
    volumes:
      - db_data:/var/lib/postgresql/data

  redmine:
    image: redmine:5
    container_name: redmine
    restart: unless-stopped
    depends_on:
      - db
    environment:
      REDMINE_DB_POSTGRES: db
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: change_me_db_password
      REDMINE_RELATIVE_URL_ROOT: /redmine
      RAILS_RELATIVE_URL_ROOT: /redmine
      TZ: Asia/Tokyo
    expose:
      - "3000"
    volumes:
      - redmine_files:/usr/src/redmine/files

  nginx:
    image: nginx:1.27
    container_name: redmine-nginx
    restart: unless-stopped
    depends_on:
      - redmine
    ports:
      - "443:443"
    volumes:
      - /opt/redmine/nginx/conf.d:/etc/nginx/conf.d:ro
      - /opt/redmine/nginx/certs:/etc/nginx/certs:ro

volumes:
  db_data:
  redmine_files:
EOF

ファイルの内容を確認する。

cat /opt/redmine/docker-compose.yml

YAML 構文をチェックする。

sudo docker compose config

起動

docker-compose.yml を配置したフォルダへ移動する。

cd /opt/redmine

コンテナを起動する。

sudo docker compose up -d

コンテナの状態を確認する。

sudo docker compose ps

STATUS が running または Up と表示されていれば正常に起動している。

コンテナのログを表示する。

sudo docker compose logs -t --tail 200

目立ったエラーがなければ問題ない。

コメント

タイトルとURLをコピーしました