這可能是一個愚蠢的問題,但我是使用Docker-compose的新手。到目前爲止,我喜歡它......但是我的構建時間很長。我有一個有幾個依賴項目的項目,每次進行更改時都需要明顯重建源代碼。現在,我打電話docker-compose build
來重建容器,然後是docker-compose up
。問題是:如何在使用Docker Compose時有效地重建項目?
它重建整個容器的每一個改變我對源代碼(這需要很長的時間 - 獲取依賴/等)。這大大減緩了我的速度。
我真的覺得我應該只能夠在容器上運行一個命令重建,然後重新運行可執行文件,像那麼:
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
有我丟失的東西?