首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以用DevSpace替换FROM,所以dev可以在不修改Dockerfile的情况下使用不同的引用?

可以用DevSpace替换FROM,所以dev可以在不修改Dockerfile的情况下使用不同的引用?
EN

Stack Overflow用户
提问于 2021-10-29 22:54:16
回答 1查看 81关注 0票数 0

我有一个类似于以下内容的Dockerfile

代码语言:javascript
复制
# creating a node base
FROM node:16-slim as node-base
ENV CI=true

# builder-base is used to build dependencies
FROM node-base as builder-base
COPY ./package-lock.json ./package.json ./
RUN npm ci --production

# 'development' stage installs all dev deps and can be used to develop code.
FROM builder-base as development
WORKDIR /app
COPY . . 
RUN npm ci
EXPOSE 4001
CMD ["npm", "start"]

# 'unit-tests' stage 
FROM development AS unit-tests
RUN npm test -- --coverage --testNamePattern=UT: 

# 'integration-tests' stage 
FROM development AS integration-tests
RUN npm test -- --coverage --testNamePattern=IT:

在我的Azure DevOps CI管道中,我希望将development阶段“缓存”到我的(ACR)。这样,当我运行unit-testsintegration-tests阶段时,我可以从ACR中提取,希望通过不构建两次development来节省一些时间。

我可以修改我的Dockerfile从ACR中提取,这将适用于CI,但我很肯定这会在本地运行这些阶段。在本地,我不想从ACR中提取,而且它是在本地构建的,因为这是开发人员正在开发的最新代码。

是否有一种不用多个devspace、修改它们等就可以使用Dockerfile来做到这一点的方法?

编辑:实际上,我可以在Azure DevOps端用--cache-frombuild命令中完成我想要的东西,而不必在本地修改DockerfileDevSpace.yaml

创意来自于这里:How to Enable Docker layer caching in Azure DevOps

还得试一试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-01 17:32:53

您可以结合使用appendDockerfileInstructions选项和多阶段构建(即通过devspace添加到内存中的Dockerfile中的多个FROM语句):https://devspace.sh/cli/docs/configuration/images/append-dockerfile-instructions

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69775503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档