眠くてテンション上がってこんなツイートしてしまったので
npm-installしたbranchをmasterにmergeして、タグv0.1.1つける。dockerhubがタグv0-9{0-2}をgithubから拾ってきてbuildして組織内reposにpushする。んで開発メンバーは組織内reposからpullしてくる。んでworkspaceマウントしてnode_moduleを上書きマウントして開発。完璧では!? 引用
masterに取り込まれてからdockerhubにimage上がるまでのラグはどうするか。
Dockerfileはdockerhub上げ用、開発メンバーはdocker-composeを使ってもらい、compose.ymlののimageに組織/repos:具体的なバージョンを指定すれば、上がるまでは環境アップできないからなんの問題もない。完璧では!? 引用
脳内フローを書いてみようとした。
Dockerfile -> for Dockerhubにstoreする用
docker-compose.yml -> for 開発メンバーの開発環境用
FROM node:xxx-stretch
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install && npm cache clean --force
COPY . /usr/src/app
services:
app:
image: myOrganizer/myImage:v0.1.1
volumes:
- .:/usr/src/app
- node_modules # container内のdirをマウントで消さないためのトリック
ここで筆を止めたんですよ。
これだとpull-req上で、docker-compose.ymlのimageに.を指定するわけにもmyImage:v0.1.1(まだ存在しない)を指定するわけにも行かない。
テストできなーい。
だめだこれ。ボツ ボーツ。
最終的には、dockerhubにstoreしたimageを開発メンバーには使ってもらって、build時間をほぼゼロにしてもらうつもりだったんだけど、開発者自信がimageを更新していくわけだから因果律ほうかいしてるやね。
package.jsonにdiffあったらおとなしくbuildしてもらおう。
依存環境の完全なfreezeは開発フェーズでは諦めて、dockerhubへのstoreを以て達成するかー。