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チップの場合はもう一手間あるらしい。

要するに、デフォルトパスじゃないところにインストールされたから、それに対するセッティングが必要とのこと。

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ファイルを格納するディレクトリを作成する

作業用ディレクトリを作成。
わたしは下記のように作成しました。

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化していきたいわけだが、今日中に終わるかな…

追記:今日中に終わりました

DockerでRedmineを動かしてみる②

この記事の続きです。 今回は、localhostで動いているRedmineを外部からもみれるようにしたい!というお話。こちらを参考にしてみます。 ▼localhostにhttpsで外部から接続…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA