实时重新加载在 Windows 的 docker 容器中不起作用

问题描述 投票:0回答:1

我正在使用 docker 容器在 Windows 中开发一个项目。

docker-compose.yml
如下:

version: "3"

services:
  # FLASK
  flask-dev:
    container_name: flask-dev
    hostname: flask-dev
    restart: "on-failure"
    build:
      context: ./server
    volumes:
      - ./server/:/usr/src/app/
    ports:
      - 5000:5000
      - 5678:5678
    env_file:
      - ./env/dev/flask.env
    networks: 
      - appnetwork
      - dbnetwork
      - elknetwork

nginx.conf
的内容如下:

upstream flask {
    server flask-prod:8000;
}

server {
    listen 80;

    location /static {
        alias /usr/src/app/static;
    }

    location / {
        proxy_pass http://flask;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 300;
        proxy_read_timeout 300;
    }
}

Dockerfile
的内容是:

FROM python:3.7-slim

ENV APP_HOME /usr/src/app
WORKDIR ${APP_HOME}

# Initial setup
RUN apt-get update && apt-get install -y netcat
COPY ./requirements.txt .
RUN pip install -r requirements.txt
RUN mkdir -p /home/vagrant/app-data/

# Copy all files
COPY . .

# Run entrypoint checks
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]

entrypoint.sh
的内容是:

#!/bin/sh

echo "Running Prettier checks"
npx prettier --check .
# npx prettier --list-different --write .

echo "Starting app"
npm start

我尝试将

npm start
中的
entrypoint.sh
更改为
npm start dev:watch
,并尝试将
environment: - DEBUG=True
中的
docker-compose.yml
设置,但它不起作用。在我停止 docker 容器并重新启动之前,index.html 文件中的任何更改都不会反映出来。有没有简单的方法可以解决这个问题?

我的Windows版本是

10.0.19043.1237
,docker版本是
4.1.0

我找到了this,但它没有解决我的问题。 解决方案涉及外部工具。

docker docker-compose dockerfile livereload
1个回答
0
投票

您需要将 Docker 的端口“35729”映射到您计算机上相应的端口。

Dockerfile

EXPOSE 35729

docker-compose.yml

services:
  app:
    build: .
    volumes:
      - .:/app
    ports:
      - "${PORT}:3000"
      - "35729:35729" # Live reload
© www.soinside.com 2019 - 2024. All rights reserved.