エスプリフォートでは、業務内でのシステム開発以外でも、日々アンテナを張りながら仲間同士お互いに技術力を磨き合っています。
そして高めた技術力を顧客のために如何に生かしていくのかということを考え、日々の開発に取り入れることで顧客から頼られる存在としてあり続けています。
今回は「Docker」をご紹介いたします。
はじめに
最近とある事情があり、Redmineを試したいな、と思いました(Redmineとは、オープンソースのプロジェクト管理ツールです)。
皆さんなら、このような「とあるツールを試してみたい」という時、どうされていますか?
「そのままPCにインストールするの、ちょっとヤだな...」と思ったことはないでしょうか?
例えば、以下のようなケースです。
- バージョン違いの同じ開発ツールがインストール済
- 他のシステム開発環境に影響が出そう
つまりは『少し試したいだけなのに、PCの既存環境に影響を与えてしまわないか?』というのが気になるところではないでしょうか。
こんな時こそ
こんな時に役立つのが「Docker」をはじめとする、仮想環境構築ツールです。
docker - 開発者とチーム向けの#1コンテナ化ソフトウェア
「コンテナ」をざっくりというと、『プログラム環境を閉じ込めておける箱』みたいなものです。
PCの既存環境には影響を与えないので、今回のような用途にはピッタリです。
他に開発面でも、本番環境の違いなく、アプリケーション作成・デプロイ・実行を簡単に実行できる環境を開発や検証を行えることも強みです。
「Docker」のメリット・デメリット
メリット
・アプリケーションの動作が高速
・本番と同じ環境で開発できる
・開発環境とインフラ環境一式を簡単に共有・展開できる
デメリット
・Dockerのコンセプトやコマンド、設定方法などを理解する必要がある為、学習コストが高い
・非対応のOSでは起動できない
「docker」でやってみよう
実際にdockerを使って、Redmineが動作する環境を作りたいと思います。
自宅に眠っていたMac mini (Late 2012) のOSをUbuntuに入れ替え、ここにDockerをインストールし、その上に、Redmineのコンテナを作成します。
1.PC環境の構築
Ubuntuのインストール、Dockerのインストールは、それぞれ以下のサイトを参考にさせて頂きました。
2. Redmine コンテナの構築
次に、Redmine コンテナを作成し、起動させます。
今回は、Redmine本体とDB(Postgresを使用します)の2つのコンテナを作成するので、「docker compose」を使用します。
docker-compose.yml ファイルは、以下のサイトを参照させて頂きました。
docker-composeでコンテナ作成(redmine)
services:
redmine:
image: redmine:5.0.4-bullseye
ports:
- 8081: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:
3. Redmine の起動確認
コンテナを起動し、動作確認してみます。
sudo docker-compose up -d
http://Mac miniのIPアドレス/ポート番号(今回は8081)
できました!
作成したコンテナは、好きなタイミングで削除することができます。
まとめ
コンテナは、今回試したように、ちょっとしたツールの動作を確認するにはとても便利です。
またそれだけではなく、コンテナには多くの利点がありますので、よければDockerの活用を検討してみては如何でしょうか。