EC2サーバーにDockerをインストールし、DockerイメージからRedmineを構築する。
必要なスペックは以下。
- インスタンス:t3a.medium
- ボリューム:50
インスタンス変更、ボリューム拡張は以下の記事を参考にすること。
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
目立ったエラーがなければ問題ない。

コメント