2021年くらいにDockerに立てた個人的なRedmineに、外からもアクセスしたいなーと思うようになり、AWSとかいろいろ検討した結果、このままHTTPS化できたら幸せ、という結論になったので、ごりごり進めてみた。
とりあえず手頃な手順書としてこちらを採用
▼DockerでRedmine(プロジェクト管理ソフトウェア)を動かす
https://zenn.dev/isi00141/articles/c8c883f7e33647
環境はこちら。
- MacBook Air (M1, 2020)
- OS: MacOS 14.4.1(23E224)
- Docker Desktop for Mac 4.33.0 (160616)
1. Docker composeをインストールします。
$ sudo apt install docker-compose
Password:
The operation couldn’t be completed. Unable to locate a Java Runtime that supports apt.
Please visit http://www.java.com for information on installing Java.
初手から詰んだ。
aptはMac非対応というか、Linuxのコマンドらしい。
代替策としてHomebrewというものを見つけたので、それをインストールする。
手順は英語だけどこちらを採用。
▼How to Install Homebrew on Mac: A Comprehensive Guide
https://iboysoft.com/howto/install-homebrew-on-mac.html
$ xcode-select --install
xcode-select: note: install requested for command line developer tools
Xcodeのインストール完了後に、次のコマンドを実行。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)
これでhomebrewのインストールは完了…と思いきや、Mxチップの場合はもう一手間あるらしい。
> On Apple Silicon Macs, Homebrew needs to be installed in the /opt/homebrew folder. Since it's not a part of the default PATH, you'll need to create a ~/.zprofile file that has a command for setting up Homebrew.
要するに、デフォルトパスじゃないところにインストールされたから、それに対するセッティングが必要とのこと。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/⚫︎⚫︎⚫︎/.zprofile
⚫︎⚫︎⚫︎は自分のユーザ名。
eval "$(/opt/homebrew/bin/brew shellenv)"
本線に戻って、docker-composeのインストールをする。
brew install docker-compose
無事完了!
2. docker-compose.ymlファイルを格納するディレクトリを作成する
作業用ディレクトリを作成。
わたしは下記のように作成しました。
/Users/Eri/Documents/docker-redmine
3. docker-compose.ymlファイルを作成する
version: '3.1'
services:
redmine:
image: redmine:5.0.4-bullseye
ports:
- 8080:3000
environment:
REDMINE_DB_POSTGRES: redmine-db
REDMINE_DB_DATABASE: redmine
REDMINE_DB_USERNAME: redmine_user
REDMINE_DB_PASSWORD: redmine_password
REDMINE_SECRET_KEY_BASE: supersecretkey
REDMINE_DB_PORT: 5432
volumes:
- vol_redmine:/usr/src/redmine/files
redmine-db:
image: postgres:15.1-bullseye
ports:
- 5432:5432
environment:
POSTGRES_DB: redmine
POSTGRES_USER: redmine_user
POSTGRES_PASSWORD: redmine_password
volumes:
- vol_redmine_db:/var/lib/postgresql/data
volumes:
vol_redmine:
vol_redmine_db:
ふぁ?ってなったので、このファイルについて詳しく解説しているページを探索。
▼Docker Composeについてざっくり理解する【概要 / ymlファイル書き方 / コマンド操作】https://qiita.com/gon0821/items/77369def082745d19c38
曰く、
> docker-compose.ymlの作成
> docker-compose.yml
とはDocker Composeの設定ファイルであり、これから作成するコンテナの初期状態を「ports:」「volumes:」などYAML形式を用いて定義されています。
> また、このファイルは通常、プロジェクトのルートディレクトリに配置されるのが一般的です。ここで初登場したdocker-compose.yml
君を使用することで、複数のコンテで構成されるアプリケーションの全体像を一目で把握でき、さらに一つのコマンドで全てのコンテナを起動したり、停止したりすることができちゃいます。
とのこと。とりあえずやってみるの精神で書き換えていく。
以下、インラインでコメントを入れたり、コードの外にメモをしてます。
version: '3'
services:
redmine: //サービス名、わかりやすい任意の名前
image: redmine:5.0.4-bullseye //ビルドするDockerイメージ
ports: //ホストマシンのポート番号:コンテナのポート番号
- 8080:3000
environment: //Dockerのコンテナ内で使用される環境変数を設定
REDMINE_DB_POSTGRES: redmine-db
REDMINE_DB_DATABASE: redmine
REDMINE_DB_USERNAME: redmine_user
REDMINE_DB_PASSWORD: redmine_password
REDMINE_SECRET_KEY_BASE: supersecretkey
REDMINE_DB_PORT: 5432
volumes: //ボリューム名の後にコロンを続け、マウントするコンテナのパスを指定
- vol_redmine:/usr/src/redmine/files
redmine-db:
image: postgres:15.1-bullseye
ports:
- 5432:5432
environment:
POSTGRES_DB: redmine
POSTGRES_USER: redmine_user
POSTGRES_PASSWORD: redmine_password
volumes:
- vol_redmine_db:/var/lib/postgresql/data
volumes: //
vol_redmine:
vol_redmine_db:
※Versionについて
▼Compose ファイルのバージョンとアップグレード
https://docs.docker.jp/compose/compose-file/compose-versioning.html
- バージョン 1。
YAML のルート(先頭)でversion
キーを省略します。 - バージョン 2.x。
これを指定するには、 YAML のルートでversion: '2'
やversion: '2.1'
のように入力します。 - バージョン 3.x は、Compose と Docker Engine の swarm モード 間で、互換性を持つように設計されました。これを指定するには、 YAML のルートで
version: '3'
やversion: '3.1'
のように入力します。
※用意したDockerfileよりビルドするとき
build:
に、.ymlがあるディレクトリ(カレントディレクトリ)からDockerfileが置いてあるディレクトリへの相対パスを記述。今回はすべてimageでビルドするので、記載なし。
※Volumeについて
▼Dockerでvolumesを設定する
https://zenn.dev/ajapa/articles/fc1205d4bcbfe7
> volumesはDockerのコンテナ内で作成したデータを永続化するための場所です。
> コンテナに保存したデータはコンテナを破棄すると消えます。
> volumesに保存したデータはコンテナを破棄しても残り再利用できます。
3. docker-composeコマンドを実行する
頭がパンクしそうなのでとりあえず動かす。
$ docker-compose up -d
WARN[0003] /Users/Eri/Documents/docker-redmine/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 2/2
✘ redmine-db Error Head "https://registry-1.docker.io/v2/library/postgres/manifests/15.1-bullseye": EOF 2.5s
✘ redmine Error context canceled 2.5s
Error response from daemon: Head "https://registry-1.docker.io/v2/library/postgres/manifests/15.1-bullseye": EOF
↑に記載したVersionだけど廃止なの?
とりあえず削除してもう一度。
$ docker-compose up -d
[+] Running 27/27
✔ redmine Pulled 64.9s
✔ 66dbba0fb1b5 Pull complete 28.8s
✔ b5524bd5f3b1 Pull complete 29.2s
✔ 82958c710ef1 Pull complete 29.2s
✔ 5a6a02b977de Pull complete 32.3s
✔ ba5e752919d7 Pull complete 32.3s
✔ f95ed9e24d48 Pull complete 32.3s
✔ 5b8d069e32e3 Pull complete 42.5s
✔ 44b9269c93df Pull complete 51.4s
✔ 42d780ce87c3 Pull complete 51.7s
✔ 7cba29d17e46 Pull complete 59.5s
✔ a9c03adba7bd Pull complete 60.9s
✔ 1365cb6ecb62 Pull complete 60.9s
✔ redmine-db Pulled 36.0s
✔ 5731adb3a4ab Pull complete 5.7s
✔ 99e6658bde9e Pull complete 5.8s
✔ 8d6df6c6d44b Pull complete 5.8s
✔ 01456673820c Pull complete 5.8s
✔ 2c9cd9bf3e95 Pull complete 6.0s
✔ 7facc03a7131 Pull complete 6.1s
✔ 181e9c08ee17 Pull complete 6.1s
✔ b9a8a4aa3a48 Pull complete 6.1s
✔ d1e0dce1879e Pull complete 13.8s
✔ c98a3b789edd Pull complete 24.0s
✔ 9d2530b1cf99 Pull complete 24.0s
✔ 62a23b684cc8 Pull complete 24.0s
✔ d2204ee312c6 Pull complete 32.0s
[+] Running 5/5
✔ Network docker-redmine_default Created 0.0s
✔ Volume "docker-redmine_vol_redmine" Created 0.0s
✔ Volume "docker-redmine_vol_redmine_db" Created 0.0s
✔ Container docker-redmine-redmine-db-1 Started 0.7s
✔ Container docker-redmine-redmine-1 Started 0.7s
無事コンテナがスタートした!
4. Redmineの実行
http://localhost:8080 にアクセスすると…
見事起動!!
初期のユーザ名「admin」パスワード「admin」を入力して、
パスワードを変更して、
個人設定をしたら、Redmineが使えるようになります。
2021年に立てたRedmineは化石になってたので、今回まるっと立て直しました。このあとHTTPS化していきたいわけだが、今日中に終わるかな…
追記:今日中に終わりました