【GCP】お手軽無料! HTTPS の Redmine docker
2022/04/10 追記
下記サイトにて、最近また GCP での構築を同様に行ってみたのでそちらを参考にして下さい。
概要
Redmine&docker-compose で、HTTPS を使いたいと思って調べたのですが、ドンピシャな情報がありませんでした。
Container-Optimized OS
にて docker-compose コンテナなど使って試行錯誤しましたが、上手く行かなかったので通常のVMにて。
GCP上の無料枠で構築。証明書がオレオレなので、半分くらい真面目な構築です。
小さいインスタンスの割に意外とサクサク動く HTTPS 無料 Redmine。
GCP は新規作成でなくともよいが、GCE の Always Free 枠が空いていることが前提です。(無料がいいなら)
GCP登録
GCE は作成するにあたって、無料トライアルを登録必須。 GCPプロジェクトを作成。
インスタンス作成
Compute Engine ページで VM 作成。
さて、GCE の無料枠は以下のように (2019-06-13 現在) 書いてあるので、当てはまるように。
今回は↓のようにしました。
ここで注意したいのが、ディスクの容量はデフォルト10Gになっていますが、30Gまで無料 なのでせっかくなら30Gに変更しましょう。
「720時間が無料」ということは、30日間無料。
31日まである月は、ご丁寧にここが744時間になります。
まずはスワップファイル作成
無事に VM が作成完了。
メモリが非常に少ないので、スワップで補います。
$ sudo fallocate -l 4G /swapfile $ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ sudo swapon /swapfile $ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
オレオレ証明書作成
次に、SSH で中に入り証明書を作成。
サクッといきます。 最後の工程は結構時間がかかる(ことが多い)。
$ mkdir -p ~/redmine-docker/volumes/redmine/certs $ cd ~/redmine-docker/volumes/redmine/certs $ openssl genrsa -out redmine.key 2048 $ openssl req -new -key redmine.key -out redmine.csr . . . Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:Shibuya Organization Name (eg, company) [Internet Widgits Pty Ltd]:Redmine Test Corp. Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:redmine.sample.local Email Address []: A challenge password []: An optional company name []: $ openssl x509 -req -days 3650 -in redmine.csr -signkey redmine.key -out redmine.crt Signature ok . . . $ openssl dhparam -out dhparam.pem 2048 Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time . . .
タイムゾーンをJSTに
$ sudo apt-get install -y dbus
$ sudo timedatectl set-timezone Asia/Tokyo
docker と docker-compose をインストール
docker 公式手順 に従ってインストールします。
docker インストール
$ sudo apt-get remove docker docker-engine docker.io containerd runc $ sudo apt-get update $ sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S] $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable" $ sudo apt-get update $ sudo apt-get install -y docker-ce docker-ce-cli containerd.io # ←気長に待つ $ sudo usermod -aG docker $USER
ユーザーのdockerグループ追加の反映のために、ここで一旦SSHを抜ける (SSHウインドウを閉じる)。
そして再度SSHで中に。
$ docker run hello-world . . . Hello from Docker! . . .
無事に docker のインストールが完了。
sudo なしで docker コマンドが実行できるようになりました。
ちなみに、docker グループへのユーザー追加はセキュリティの問題があるので注意しておきましょう。
詳しくは各自調べてください。
docker-compose インストール
$ sudo -i # curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose # exit $ docker-compose --version docker-compose version 1.24.0, build 0aa59064
無事に docker-compose もインストールが完了。
Redmine 用の docker-compose.yml 作成
~/redmine-docker/docker-compose.yml を作成します。
ブラウザ上のviで貼り付けようとすると (少なくとも私は) 上手くいかなかったので、右上の歯車アイコンからファイルを直接アップロードすると楽でした。
docker-compose.yml
version: '2' services: postgresql: image: sameersbn/postgresql:9.6-4 environment: - DB_USER=redmine - DB_PASS=password - DB_NAME=redmine_production redmine: image: sameersbn/redmine:4.0.3-2 depends_on: - postgresql environment: - TZ=Asia/Tokyo - DB_ADAPTER=postgresql - DB_HOST=postgresql - DB_PORT=5432 - DB_USER=redmine - DB_PASS=password - DB_NAME=redmine_production - REDMINE_PORT=443 - REDMINE_HTTPS=true - REDMINE_RELATIVE_URL_ROOT= - REDMINE_SECRET_TOKEN= - NGINX_HSTS_MAXAGE=2592000 - REDMINE_SUDO_MODE_ENABLED=false - REDMINE_SUDO_MODE_TIMEOUT=15 - REDMINE_CONCURRENT_UPLOADS=2 - REDMINE_BACKUP_SCHEDULE= - REDMINE_BACKUP_EXPIRY= - REDMINE_BACKUP_TIME= ports: - 443:443 - 80:80 volumes: - ./volumes/redmine/certs:/home/redmine/data/certs
ホームにアップロードされるので、 ~/redmine-docker/
内に移動。
$ mv ~/docker-compose.yml ~/redmine-docker/docker-compose.yml
起動も気長に待ちましょう。
$ cd ~/redmine-docker/ $ docker-compose up -d
さて、GCEの外部IPのところをクリックしてアクセスすると…
オレオレ証明書のワンクッション。
詳細設定から「~ にアクセスする(安全ではありません)」を選択。
無事にオレオレ証明書を使用した Redmine が出来上がりました。
管理者
初期ID:admin
初期PW:admin
[参考]
https://sakura-bird1.hatenablog.com/entry/2019/03/12/034152
https://github.com/sameersbn/docker-redmine