如何在带有Yarn工作区带有CMD的Dockerfile中使用参数?

问题描述

我正在尝试配置 Dockerfile ,该文件将:

  1. CMD 块中使用参数
  2. 使用纱线工作区进行 monorepo
  3. 使用该参数在 monorepo 中指定一个文件夹以“开始”

当前,运行容器时,它只是用来安装依赖项...

Dockerfile 在这里

FROM node:12
ARG location
ENV monorepoFolder=${location}

workdir /workdir

copY . .

RUN ls
 
RUN yarn --cwd ${location}

RUN yarn --cwd ${location} build

copY . .

EXPOSE 3000

CMD yarn --cwd ${monorepoFolder} start

目录结构很简单:

/包含monorepo中的所有文件夹/工作区以及package.json

通常,要在本地启动项目,我将运行:

yarn --cwd folder1
yarn --cwd folder1 build
yarn --cwd folder1 start

但是,当我尝试运行 dockerfile 时,它只是试图重新安装依赖项。

解决方法

事实证明,这可行。清除了我的缓存/图像,它可以按预期工作!

对Dockerfile的任何改进,我都很高兴。将保留此设置,因为此设置没有太多设置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...