【发布时间】:2017-12-20 12:53:44
【问题描述】:
我正在使用 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 将无法工作,但是如果主机中没有安装节点模块,那么它将失败,我需要/home/app/node_modules 的原因。我怀疑这可能是我的错误的原因,但我不知道如何规避它。
【问题讨论】:
标签: node.js docker docker-compose dockerfile package.json