我正在使用docker和docker-compose设置构建管道.我有一个用javascript编写的前端,需要在使用前进行构建.后端是用go编写的.
为了使该组件与我们的docker-compose设置的其余部分集成,我也想在docker映像中进行构建.
这是我要执行的流程:
>在构建期间执行:
>构建前端的东西,并将其放在/ output(绑定到
输出量
>构建后端服务器
>运行时执行:
>运行服务器,它可以访问/ output中的构建文件
我对docker和docker-compose非常陌生,所以我不确定这是否可行,甚至不确定正确的做法.
供参考,这是我的docker-compose.yml:
version: '2'
volumes:
output:
driver: local
services:
frontend:
build: .
volumes:
- output:/output
backend:
build: ./backend
depends_on:
- frontend
volumes:
- output:/output
和Dockerfile:
FROM node
# create working dir
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ADD package.json /usr/src/app/package.json
# install packages
RUN npm install
COPY . /usr/src/app
# build frontend files and place results in /output
RUN npm build
RUN cp /usr/src/app/build/* /output
和后端/ Dockerfile:
FROM go
# copy and build server
COPY . /usr/src/backend
WORKDIR /usr/src/backend
RUN go build
# run the server
ENTRYPOINT ["/usr/src/backend/main"]
最佳答案