我不确定我做错了什么。我已经在 StackOverflow 中查看了另一篇类似的帖子,但我看不出问题出在哪里。
这是我的 docker-compose 文件:
## APP
nodeServer:
build:
context: .
dockerfile: ./config/node-express/Dockerfile
image: node-mysql-app
restart: unless-stopped
stdin_open: true
tty: true
ports:
- 3000:3000
- 8745:8745
volumes:
- .:/home/dockeruser/src
# - node_modules:/home/dockeruser/src/node_modules
depends_on:
- mysqldb
restart: unless-stopped
volumes:
node_modules:
还有我的 Dockerfile
FROM node:14.4-alpine3.11
RUN apk add --no-cache python g++ make
ENV NODE_ENV=development
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --production
RUN apk update && apk add bash
RUN addgroup -g 1010 -S docker && \
adduser -u 1010 -S dockuser -G docker
USER dockuser
COPY . /home/dockuser/src
WORKDIR /home/dockuser/src
EXPOSE 3000 8745
CMD ["/bin/sh", "entrypoint.sh"]
我在应用程序根目录中运行 docker-compose.yml 文件,这意味着我拥有所有应用程序代码。 docker 文件在这个路径:
dockerfile: ./config/node-express/Dockerfile
运行此应用程序后,该应用程序在 3000 端口中运行良好,我可以执行容器并查看代码,但如果我更改主机中的某些内容,则容器不会更新。我也看不到运行 Dockerfile 时创建的 node_modules:
"docker-compose build --no-cache"
"docker-compose up"
首先我总是删除容器和卷以防万一。
答案 0 :(得分:0)
我通过这些更改解决了这个问题。
Dockefile:
WORKDIR /usr/src/app
COPY . .
docker-compose.yml
volumes:
- .:/usr/src/app
我不确定原因,但它有效。