Help us understand the problem. What is going on with this article?

Docker for Windowsでredmineを動かす

More than 3 years have passed since last update.

普段はMac使い。そのまた前はUbuntu。ということでWindowsはここ10年ほどご無沙汰なのですが、必要に迫られてWindows版Dockerでredmineを動かしてみました。
プラットフォームが変わっただけでたいしたことないだろうと思っていたのですが、予想以上に大変だったので得た知見を共有です。

なにが大変なのか?

toolboxでdockerだったころの知見などの煙幕

今WindowsでDockerを使うならDocker for Windowsが王道だと思いますが、このプロダクトが出る以前、DockerをWindowsで動作させるため先人の涙ぐましい努力がネットに刻まれています。しかし今となってはその知見が煙幕となり、あとからくるNewbieを撹乱してしまうという皮肉な結果になっています。
実際社内でハンズオンをやった時も、Dockerをインストールする具体的な方法を指定しなかったため、入れたはいいのにlinuxコンテナが動作しないなど阿鼻叫喚の状態になってしまいました。
まったくの初心者より自律的にソリューションを探せる、中、上級者の方が罠にはまりやすい印象です。

Hyper-VとVirtualBox

Dockerに興味があるような人はVagrantも高確率で触っていると思われます。少なくとも私の周りではそうです。そのVagrantがまたまた高確率で利用しているであろうVirtualBoxと、Docker for Windowsが利用しているWindowsの仮想化技術、Hyper-Vが非常に相性がよろしくないのです。具体的にはHyper-Vが有効になっているとVirtualBoxが起動しないという。。
仮想化に慣れ親しんでいるがゆえにDockerが遠くなる、というなんという皮肉でしょうか。

とはいえ、こうしてDocker for Windowsを使う , VirtualBoxとの同時使用はあきらめるということさえわかっていれば、スムーズに行くのでは、と思います。

Docker for Windowsをインストールしてみる

なにはともあれDocker for Windows(以下、Docker)をインストールしてみます。

  • まずは以下からDockerをダウンロード。

Get started with Docker for Windows
https://docs.docker.com/docker-for-windows/

stableを利用します。
installerdownload.png

インストールを淡々と進めます。
license.png

インストーラーが親切にHyper-Vを有効にしてくれます。
hyper-v.png

hello worldしてみる

  • インストールが終わったらちゃんとインストールされていることを確認するためのお約束を実行。 powershellを起動して
docker run hello-world

Hello from Docker !と表示されればOKです。
helloworld.png

OKなようです。

redmineを起動してみる

redmineを立ち上げます。
redmineを起動するコンテナとデータを保存するためのpostgresqlコンテナが必要なので、複数のコンテナを扱うのに便利なDocker composeを使用します。

  • Cドライブをシェア可能にする

dockerのデータボリューム機能を使うためにC:ドライブをシェア可能にします。
具体的にはdockerアイコンを右クリックしてセッティングを選択。
表示されたSettingsダイアログのSharedDrivesタブを選択し、 CドライブのSharedにチェックを入れます。

share.png

  • docker-compose.ymlを作成

メモ帳などのテキストエディタでDocker composeに必要なdocker-compose.ymlを作成します。

docker-compose.yml
db:
    image: sameersbn/postgresql
    environment:
        - DB_NAME=redmine_production
        - DB_USER=redmine
        - DB_PASS=password
    volumes:
        - /var/lib/postgresql

redmine:
    image: sameersbn/redmine
    environment:
        - REDMINE_PORT=10083
    volumes:
        - /home/redmine/data
    links:
        - db:postgresql
    ports:
        - 10083:80

なぜかWindowsの場合、volumesにローカルのパスを指定すると正常にpostgresqlが起動しません。

だからこんな書き方はできません。

    volumes:
        - ./postgresql:/var/lib/postgresql

なのでstopしたコンテナをrmしてしまうとデータが消えてしまうという悲劇に。
厳密にいえば消えていないので再マウントできるはずですが、Windows版のローカルのパスを指定できないという問題のために事実上、消えてしまうと同じ扱いかな、、と思っています。この辺、ぜひ識者のご意見を伺いたいです。

  • redmine起動

起動します。
初回はDBのクリエイトやプラグインのインストールが行われるので結構待ちます。5分くらい?

docker-compose.ymlがあるディレクトリに移動して

docker-compose up -d

ブラウザでアクセスします。
http://localhost:10083

無事redmineが表示されればOKです。
redmine.png

  • 停止
docker-compose stop
  • 再起動
docker-compose start -d

Windowsでも気軽にDockerが試せる時代になりました!

furu8ma
なぜかレガシーシステムのモダナイゼーションを担当することが多いです。通称Dockerおじさん。最近podcastはじめました
https://wakateossan.github.io
Colorkrew
東京・秋葉原にあるIT企業、株式会社Colorkrew。 ”世界のシゴトをたのしくするビジョナリーカンパニー”をビジョンに掲げています。 管理職0(ゼロ)、階層0(ナシ)、 チーム力∞(無限大)の組織運営、バリフラットモデルを策定・導入。OpenWork(旧Vorkers)が選ぶ自由主義で個性を活かす企業、性格のいい会社に上位ランクイン!
https://www.colorkrew.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした