我正在使用 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
您需要将 Docker 的端口“35729”映射到您计算机上相应的端口。
Dockerfile
EXPOSE 35729
docker-compose.yml
services:
app:
build: .
volumes:
- .:/app
ports:
- "${PORT}:3000"
- "35729:35729" # Live reload