我的Dockerfile
:
FROM node:10 AS builder
RUN npm install multi-file-swagger -g
WORKDIR /usr/src/app
COPY swagger/* ./
ARG API_HOST
ENV APP_HOST=$API_HOST
RUN sed -i 's+replace_host+'"$API_HOST"'+g' index.yaml
RUN multi-file-swagger index.yaml > index.json
FROM golang:1.12
WORKDIR /go/src/app
COPY . .
RUN go get -d -v ./...
RUN go install -v ./...
VOLUME /go/src/app
EXPOSE 8080
COPY --from=builder /usr/src/app/ swagger/
CMD ["app"]
我的docker-compose.yml
文件:
version: '3.4'
services:
myapp:
build:
context: .
args:
- API_HOST=api.my-real-domain.com
volumes:
- ./:/go/src/app
ports:
- "8080:8080"
如果仅运行docker build
:
docker build -t myapp . --build-arg API_HOST=api.my-real-domain.com
它可以运行以下命令:
RUN sed -i 's+replace_host+'"$API_HOST"'+g' index.yaml
RUN multi-file-swagger index.yaml > index.json
在午餐盒中,我发现index.json
存在。
但是如果使用docker-compose build
和docker-compose up
,则检查容器中的index.json
,找不到它。
答案 0 :(得分:1)
您使用以下方法覆盖app
文件夹中的所有文件:
volumes:
- ./:/go/src/app
您需要从volume
删除compose
部分