Writing Appropriately

職務経歴

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/