gpt4 book ai didi

node.js - 新的 package.json 包没有显示在 Docker 容器中

转载 作者:行者123 更新时间:2023-12-02 18:02:31 32 4
gpt4 key购买 nike

我正在使用 Docker 和 Docker Compose,这些是我的文件:

#DOCKERFILE

FROM mhart/alpine-node

# Create app directory
RUN mkdir -p /home/app

# Bundle app soure
COPY . /home/app

# From now on we work in /home/app
WORKDIR /home/app

# Install yarn and node modules
RUN echo -e 'http://dl-cdn.alpinelinux.org/alpine/edge/main\nhttp://dl-
cdn.alpinelinux.org/alpine/edge/community\nhttp://dl-
cdn.alpinelinux.org/alpine/edge/testing' > /etc/apk/repositories \
&& apk add --no-cache yarn \
&& yarn

EXPOSE 8080

这是 dev 的 docker-compose 文件:

app:
build: .
command: yarn start:dev
environment:
NODE_ENV: development
ports:
- '8080:8080'
volumes:
- .:/home/app
- /home/app/node_modules

我遇到的问题是这个设置似乎只工作一次,因为无论我将哪个新模块添加到 package.json,每当我运行 docker-compose build 它不会安装新包。

我使用卷的原因是没有 .:/home/app nodemon 将无法工作,但是如果主机中没有安装 Node 模块,那么它将失败,原因我需要 /home/app/node_modules。我怀疑这可能是我出错的原因,但我不确定如何避免这种情况。

最佳答案

我通过将我的 src 代码移动到 src 目录中解决了这个问题。这意味着我的 docker-compose.yml 文件现在看起来像这样:

app:
build: .
command: yarn start:dev
environment:
NODE_ENV: development
ports:
- '8080:8080'
volumes:
- ./src:/home/app/src

因为我没有用 node_modules 安装整个目录,新的似乎安装正确。

关于node.js - 新的 package.json 包没有显示在 Docker 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45119611/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com