概要
Oracle Cloud Infrastructure (OCI)の Always Freeでは ArmベースのAmpereアーキテクチャのメモリ6GBのVMがなんと、インスタンスが最大4つまで立ち上げられます。
本手順ではOCIのApereのVM.Standard.A1.FlexインスタンスでRedmineサーバを構築する手順を記載します。
OCIの登録・インスタンスの作成
OCI のアカウント作成
OCIのAlways Freeが利用できるアカウントを作成ください。
リージョンは Japan central (大阪)を選択してください。東京リージョンではAmpereインスタンスが枯渇しており作成できないケースがあります。
インスタンスの作成
「コンピュート」→「インスタンスの作成」
「イメージとシェープ」 シェープ=Ampere, イメージ=Ubuntu で作成
メモリ6GBのインスタンスが無料で作成できてしまいます。
SSH用の秘密鍵ファイルはダウンロードしておいてください。SSH接続時に必要です。
※または、TeratermなどでSSH用の鍵を作成し公開鍵をアップロードしてください。
サブネットの編集
インスタンス情報からサブネットを選択し、TCP/UDP の 80 および 443を開放します。
サーバ構築
SSH接続
インスタンス作成時に設定した秘密鍵を利用し、インスタンスにSSH接続します。
私の環境ではなぜかTeratermで正常に接続できない事象があり、PuTTYで接続しました。
Docker, Docker-compose のインストール
Docker および Docker-compose をインストールしてください
参考 OCI + docker でWordPress環境を簡単構築する
https://qiita.com/Kai238/items/65f1bcc24084667e1a1f
フォルダの作成
/usr/docker/redmine
/usr/docker/redmine/redmine
/usr/docker/redmine/postgres
上記のフォルダを作成します。
docker-compose.ymlの作成
以下の通り、/usr/docker/redmine/docker-compose.ymlを作成します。
注意事項
・Ampereアーキテクチャではamd64系のイメージが正常に動作しないため、arm64向けのイメージを利用します。
・DNSの設定は別途実施してください(しない場合はIPアドレスでアクセス可能)
version: '3.7'
services:
# Redmine
redmine:
image: arm64v8/redmine:4.2.8
container_name: redmine
ports:
- '3000:3000'
expose:
- '3000'
volumes:
- ./redmine/files:/usr/src/redmine/files
- ./redmine/log:/usr/src/redmine/log
- ./redmine/plugins:/usr/src/redmine/plugins
- ./redmine/public/themes:/usr/src/redmine/public/themes
restart: always
environment:
REDMINE_DB_POSTGRES: postgres
REDMINE_DB_PORT: 5432
REDMINE_DB_DATABASE: redmine #Redmine用DBのインスタンス名
REDMINE_DB_USERNAME: redmine #Redmine用ユーザー名
REDMINE_DB_PASSWORD: xxxxx #DB user redmineのパスワード】
TZ: Asia/Tokyo
links:
- postgres
# DB
postgres:
image: arm64v8/postgres:14.5
container_name: postgres_redmine
volumes:
- ./postgres/db-data:/var/lib/postgresql/data
- ./postgres/initdb:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
restart: always
environment:
POSTGRES_ROOT_PASSWORD: ***** #DBのROOTパスワード
POSTGRES_USER: redmine #Redmine用ユーザー名
POSTGRES_PASSWORD: ***** #DB user redmineのパスワード
POSTGRES_DATABASE: redmine #Redmine用DBのインスタンス名
TZ: Asia/Tokyo
volumes:
redmine:
postgres:
起動・動作確認
docker-compose up -d を実行し、起動
IPアドレスまたはドメイン名 ポート 3000で接続し表示されればOK(この時点ではSSL化していないため、httpでアクセスする)
SSL化
httpで正常にアクセスできることが確認できたら、SSL化します。
SSL化には、https-portalのコンテナを利用します。docker-compose.ymlに以下を追加し起動
最初は STAGE, FORCE_RENEWオプションをコメント化し、オレオレ証明書で接続できることを確認し、正規の証明書を取得するようにしてください。
Let’s encrypt の制限により週5回以上の更新を行うと取得できなくなります。
※DBのコンテナのTimezoneと、volumesの間に記載します。
# SSL
https-portal:
image: steveltn/https-portal:latest
ports:
- '80:80'
- '443:443'
links:
- redmine
restart: always
environment:
DOMAINS: 'redmine.example.com -> http://redmine:3000'
#STAGE: 'production'
#FORCE_RENEW: 'true'
動作確認
httpsで接続し正常に起動することを確認します。
https-portalのSTAGE, FORCE_RENEWオプションをコメントアウトした場合は、オレオレ証明書の確認後にコメントを外しインスタンスを再起動してください
初期パスワードはadmin/adminです。できる限り早くパスワードの変更及びadminの無効化を推奨します。