fey*_*chu 4 node.js docker dockerfile package.json docker-compose
我将 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
Run Code Online (Sandbox Code Playgroud)
这是 dev 的 docker-compose 文件:
app:
build: .
command: yarn start:dev
environment:
NODE_ENV: development
ports:
- '8080:8080'
volumes:
- .:/home/app
- /home/app/node_modules
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是这个设置似乎只工作一次,因为无论我添加哪个新模块package.json,每当我运行docker-compose build它都不会安装新包。
我使用卷的原因是因为如果没有,nodemon 将无法工作.:/home/app,但是如果主机中未安装节点模块,那么它将失败,这就是我需要的原因/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
Run Code Online (Sandbox Code Playgroud)
由于我没有使用 node_modules 安装整个目录,因此新的似乎已正确安装。
| 归档时间: |
|
| 查看次数: |
4462 次 |
| 最近记录: |