加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用Docker运行构建过程

发布时间:2020-12-16 03:24:14 所属栏目:安全 来源:网络整理
导读:我正在使用docker和docker-compose设置构建管道.我有一个用javascript编写的前端,需要在使用前进行构建.后端是用go编写的. 为了使该组件与我们的docker-compose设置的其余部分集成,我也想在docker映像中进行构建. 这是我要执行的流程: 在构建期间执行: 构

我正在使用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"]

这里出了点问题,但我不知道是什么.似乎构建步骤的输出没有保留在输出卷中.我该怎么做才能解决此问题?

最佳答案
您无法在Docker构建期间附加卷.
这样做的原因是docker build命令的目标是构建映像,除此之外,它不需要卷,因为Dockerfile具有ADD / COPY.

为了产生输出,您应该创建一个脚本,该脚本主要由npm安装; npm构建;从当前dockerfile cp /usr/src / app / build / * / output并使用此脚本作为dockerfile中的入口点/ cmd.

我不确定compose是否可以运行此命令,但是无论如何,我发现它被包装在shell脚本中更为清晰,该脚本首先执行前端构建器容器,然后以输出目录作为卷执行后端容器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读