首页 > 解决方案 > 为什么在我的 Docker 容器中找不到 yarn.lock?

问题描述

我正在运行一个 Node.js 脚本,如下所示docker run -it --rm -u node --name build_container -v $(pwd):/home/node/app -w "/home/node/app" node:lts bash -c "yarn install --no-cache --frozen-lockfile"

但是,脚本日志显示了显示info No lockfile found,更奇怪的是,发现了一条消息,指出发现了package-lock.json。但是,工作目录没有package-lock

在此处输入图像描述

有什么想法可能是问题吗?

标签: node.jsdockeryarnpkg

解决方案


我建议使用你自己的Dockerfile来构建你的图像 - 然后在构建中运行它 - 像这样:

Dockerfile

FROM node:12-alpine

# Create work directory
RUN mkdir -p /express
WORKDIR /express

# Bundle app sources
COPY . .

# Build app
RUN yarn install --prod --frozen-lockfile && yarn run build

EXPOSE 3000

# Set default NODE_ENV to production
ENV NODE_ENV production
ENTRYPOINT [ "yarn", "start" ]

.dockerignore

node_modules
build
dist
config
docs
*.log
.git
.vscode

然后构建镜像: docker build -t <your image name> -f <Dockerfile (if omitted uses local folder .Dockerfile> <path to code your code>

构建完成后,像普通图像一样运行它——因为一切都已经在里面了。


推荐阅读