【问题标题】:Two Git Repos, One Docker Image两个 Git 存储库,一个 Docker 映像
【发布时间】:2020-09-17 22:48:33
【问题描述】:
我对 docker 还是比较陌生。我有两个 git repos。一个是 Next.js 应用程序,另一个是 nodejs 应用程序。我需要创建一个 docker 容器,但是在构建时,我需要构建 next.js 代码并将构建文件夹移动到节点应用程序,然后再创建图像。不确定这是否可能。
我不确定这是否是最好的选择。最终目标是将 docker 容器推送到 AWS ECS。
背景,next.js 是一个服务端渲染的 React 框架。因此,在 QA 和 PROD 中,节点应用程序为内容提供服务。
【问题讨论】:
标签:
node.js
docker
next.js
amazon-ecs
【解决方案1】:
通过发出RUN 指令,已执行的命令被提交到当前映像之上的新层中。 Docker 背后的概念是将您的融合步骤保持在源代码控制之下,以便可以从映像历史中的任何时间点创建容器。在这种情况下,使用一组RUN 指令会将每个步骤作为单独的层提交。
WORKDIR /project
RUN git clone https://github.com/foo/next-js.git
RUN git clone https://github.com/baz/nodejs.git
WORKDIR /project/next-js
RUN npm run build
RUN cp ./build ../nodejs/
您可以将上述内容合并到一个 bash 脚本中并绕过 Docker 的分层机制。
COPY ./setup.sh /
RUN chmod u+x /setup.sh
RUN /setup.sh
但是,这样做会破坏一开始就使用 Docker 的目的,除非出于某种原因,您需要确保您的容器以一层的形式接收一组指令。