これは愚かな質問かもしれませんが、私はDocker-composeを使うのが初めてです。これまでのところ、私はそれが大好きです...しかし、私はいくつかの長いビルド時間を持っています。私はいくつかの依存関係を持つプロジェクトを持っており、変更を加えるたびにソースを明らかに再構築する必要があります。今、私はdocker-compose build
にコンテナを再構築し、その後にdocker-compose up
と呼んでいます。問題は次のとおりです。Docker Composeの使用中にプロジェクトを効率的に再構築する方法?
それは私が( - 依存関係の/ etcをフェッチ時間がかかります)ソースコードに対して行ったすべての変更のため、容器全体を再構築です。これは私をかなり遅くしています。私は共有するボリュームを使用していますので、これは動作するはず
docker-compose run web go build . docker-compose run web ./app
またはdocker-compose run web go build . docker-compose restart
:私は本当に私はちょうど同じよう-ので、実行可能ファイルを再構築してから再実行するコンテナ上でコマンドを実行することができますように感じますホストとコンテナの間のコード。すべての依存関係を再フェッチする必要はありません。新しくビルドされた実行可能ファイルを使用するべきではありませんか?ただし、これには変更が反映されておらず、ポート転送が中断しているようです。参考のため
、ここで私のDockerfileです:
FROM golang:1.8
COPY . /go/src/github.com/codeblooded/test1
WORKDIR /go/src/github.com/codeblooded/test1
RUN echo $PATH
RUN go get -d -v ./...
RUN go install -v ./...
RUN go build -o test1 .
CMD ["test1"]
EXPOSE 3470
そして、私のドッキングウィンドウ-compose.ymlファイル:
version: '3'
services:
postgres:
image: postgres
volumes:
- ./db/data/psql:/var/lib/postgresql/data
- ./db/schema:/db/schema
redis:
image: redis
volumes:
- ./db/data/redis:/data
server:
build: .
command: test1
volumes:
- .:/go/src/github.com/codeblooded/test1
ports:
- "3470:3470"
depends_on:
- postgres
- redis
は、私が欠けている何かがありますか?