满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述Dockerized webapp - 热重新加载相关的知识,希望能为你提供帮助。
我刚刚使用nginx,webpack,flaskapp和postgres的应用程序停靠,但是我目前必须运行:
docker-compose up --build
实现任何在重新创建整个环境时非常缓慢的更改,但它可以正常工作。
我想添加webpack的热重新加载功能,但是尽管经过数小时的搜索,我仍然在努力从概念上理解我需要做些什么来让它运行?
即使我创建一个单独的容器来运行webpack-dev-server插件,如何设置它来识别更改并与烧瓶后端通信?
这是我的dockerfile和docker-compose.yml文件......我对docker很新,所以任何指针都会非常感激!
Dockerfile
FROM ubuntu:latest# Update the apt-get list
RUN apt-get update -y# Install python packages
RUN apt-get install -y python-pip
RUN mkdir -p /opt/services/flaskapp/src
COPY requirements.txt /opt/services/flaskapp/src/
WORKDIR /opt/services/flaskapp/src
RUN pip install -r requirements.txt# Install curl
RUN apt-get install -y curl# Install nodejs
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash
RUN apt-get install -y nodejs# Install webpack globally
RUN npm install webpack -gCOPY . /opt/services/flaskapp/src
RUN npm run build
EXPOSE 5090
CMD ["python", "app.py"]
泊坞窗,compose.yml
version: '3'
services:
db:
image: "postgres:9.6.5"
volumes:
- "dbdata:/var/lib/postgresql/data"
env_file:
- env_file
networks:
- db_nw
flaskapp:
build: .
env_file:
- env_file
volumes:
- .:/opt/services/flaskapp/src
networks:
- db_nw
- web_nw
depends_on:
- db
nginx:
image: "nginx:1.13.5"
ports:
- "8080:80"
volumes:
- ./conf.d:/etc/nginx/conf.d
networks:
- web_nw
depends_on:
- flaskapp
networks:
db_nw:
driver: bridge
web_nw:
driver: bridge
volumes:
dbdata:
答案Flask支持在调试模式下重新加载代码。所以你应该做的是在你的
env_file
中指定以下内容:FLASK_DEBUG=1 (or True)
FLASK_APP=./app.py
有了这个你也可以改变
CMD
部分如下:CMD ["python", "-m" "flask run"]
【Dockerized webapp - 热重新加载】对于生产环境而言,请记住,最好使用
gunicorn
而不是简单的烧瓶app运行推荐阅读
- 如何在mybatis的mapper接口中为更新查询编写foreach循环
- WebApplication ASP.Net C#。取消屏蔽文本框,也称为显示密码
- 解决Azure Web App 500内部服务器错误超时问题并对其进行故障排除
- 如何在不使用webView的情况下在Android应用程序中显示Web内容
- Webapp地址与.war文件名不同
- 使用Google Apps脚本Web应用添加到Google表格
- 对于任何不匹配的URL,Jetty ConstraintMapping()
- eclipse webapp中的pom.xml文件出错
- 如何在webapp中创建子域用户帐户