Dockerを開発に利用する時のメモ
イメージ
本番用イメージ | 開発用イメージ | |
---|---|---|
IPアドレス固定 | しない | しない |
ホスト名 | 含めない | 含めない |
ポート フォワーディング |
- | - |
ログファイル | 標準出力 | 標準出力 |
設定ファイル | 含めない | 含める |
sshd | - | 入れる |
sshd_conf | - | 入れる |
.ssh | - | 含めない |
app | 含めない | 含めない |
DBデータ | 含めない | 含めない |
コンテナ
- | 本番コンテナ |
---|---|
IPアドレス固定 | しない |
ホスト名 | コンテナ起動オプション --hostname {名前} |
ポート フォワーディング |
http,https コンテナ作成オプション -p {ホストport}:{コンテナport} |
ログファイル | --volume /srv/docker/{project}/product/app/stable/{パス} --volume /srv/docker/{project}/product/db/{DB-version}/{パス} |
設定ファイル | --volume /srv/docker/{project}/product/app/stable/{パス} --volume /srv/docker/{project}/product/db/{DB-version}/{パス} |
sshd | - |
sshd_conf | - |
.ssh | - |
app | --volume /srv/docker/{project}/product/app/stable/{パス} |
DBデータ | --volume /srv/docker/{project}/product/db/stable/{パス} |
- | VPS上の開発用コンテナ |
---|---|
IPアドレス固定 | しない |
ホスト名 | コンテナ起動オプション --hostname {名前} |
ポート フォワーディング |
http,https,SSH,DB コンテナ作成オプション -p {ホストport}:{コンテナport} |
ログファイル | コンテナ内部でいい |
設定ファイル | ほぼ共通なのでイメージに含めとく 起動後コピーか編集かマウント --volume /srv/docker/{project}/develop/app/{version}/{作業者}/{パス} 共通DB --volume /srv/docker/{project}/develop/db/{DB-version}/{パス} 専用DB --volume /srv/docker/{project}/develop/db/{DB-version-作業者名}/{パス} |
sshd | rootで接続してお好きに |
sshd_conf | イメージに含める |
.ssh | コンテナ起動オプション --volume /srv/docker/.ssh/{作業者}/ :/home/username/.ssh |
app | 画像ファイルなどGitに含まれていないものがあるので本番からまるごとコピー 開発設定に変更するためにGitの開発ブランチで上書き Gitのリモートレポジトリのパスを伝える |
DBデータ | 共通DB --volume /srv/docker/{project}/develop/db/{DB-version}/{パス} 専用DB --volume /srv/docker/{project}/develop/db/{DB-version-作業者名}/{パス} |
- | ローカル開発用コンテナ |
---|---|
IPアドレス固定 | 開発者のお好きに |
ホスト名 | 開発者のお好きに |
ポート フォワーディング |
開発者のお好きに |
ログファイル | 開発者のお好きに |
設定ファイル | ほぼ共通なのでイメージに含めとく コピーするなり編集するなりお好きに |
SSH | - |
sshd_conf | - |
.ssh | - |
app | 画像ファイルなどGitに含まれていないものがあるので本番からまるごとコピー 開発設定に変更するためにGitの開発ブランチで上書き パスワードをかけて圧縮して渡す Gitのリモートレポジトリのパスを伝える |
DBデータ | ・共通の開発用のデータベースへ接続 ・専用データベースを用意する ・自身で作成してもらう |
DB-version名
appのバージョンはそのままDBのバージョンアップ対応
DBのソフトウェアが変われば必然
product/db/Mongo3.2-app2.1/
product/db/Mongo3.6-app2.1/
appのバージョンが変わりDBのバージョンはそのままだがテーブル構造などが変わる時
別スキーマ、別DBを作成するという方法でいいんじゃないのかなとも思うけどDocker的には?
コンテナ作成後にDB接続設定ファイルをコピーして切り替えるか
Volumeでマウントディレクトリを切り替えるか
appのバージョン毎にdocker-compose.yml用意するならappのバージョンと共にVolumeのマウント先が変わればいいのでは
develop/db/psql9.6-app2.1/
develop/db/psql9.6-app2.3/