Shell Nginx Gunicon Dash(Flask)应用程序似乎将结果缓存在某个地方(哪里??)
我在运行Ubuntu18.04的Google虚拟机上安装了一个dash应用程序,可以直观地看到时间的推移 该应用程序基于三个docker容器:Shell Nginx Gunicon Dash(Flask)应用程序似乎将结果缓存在某个地方(哪里??),shell,docker,nginx,gunicorn,plotly-dash,Shell,Docker,Nginx,Gunicorn,Plotly Dash,我在运行Ubuntu18.04的Google虚拟机上安装了一个dash应用程序,可以直观地看到时间的推移 该应用程序基于三个docker容器: gunicorn提供的应用程序本身(在端口5000上) NGINX容器(从80->443->5000进行翻译) Certbot容器(用于获取和续订SSL证书) 现在我的问题是,无论我做什么,我得到的应用程序都是一个相当过时的应用程序版本(数据与我第一次部署它时完全相同,直到3月28日)。我尝试更改源数据以包含较新的数据,但也包含较少的数据,但没有看到任何
docker compose
文件:
version: '3.7'
services:
web:
build: ./services/web
command: gunicorn --bind 0.0.0.0:5000 wsgi:app
expose:
- 5000
nginx:
image: nginx:1.17-alpine
restart: unless-stopped
volumes:
- ./data/nginx:/etc/nginx/conf.d
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
ports:
- "80:80"
- "443:443"
depends_on:
- web
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
certbot:
image: certbot/certbot
restart: unless-stopped
volumes:
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
可能是因为web运行复制命令来复制整个目录,包括data.csv
因此,如果在主机上的该目录中放置新的data.csv
,则只有在执行docker compose build
时,才会将其复制到映像中
您可能可以通过向web
服务添加卷装载,并将data.csv
放在其中来修复此问题,从而允许您在主机上更新该文件,然后发出docker compose restart web
为了避免发出重新启动命令,您可能必须更改编码方式:
def load_data():
global data
_ = pd.read_csv(os.path.join(os.path.dirname(__file__), '../data.csv'))
return _
data = load_data()
如果您需要进一步的建议,请告诉我。您太棒了!我猜有时候你只是在寻找完全错误的东西,而忽略了显而易见的东西(比如必须重建图像或装载数据)。谢谢大家!@法比安·博斯勒的第二双眼睛从来都不是坏事:-)当你在这里的时候,这是一个完全无关的话题。以前我只使用单个docker容器,我将它们上传到注册表,然后在目标机器上提取它们。现在,docker compose还能用吗?据我所知,docker compose将上载到docker hub,而不是我自己的注册表,对吗?干杯,顺便说一句。我想把你添加到某个地方作为联系人:)我的联系人数据可以在这里@FabianBosler找到。我在这里发布了一些更新,但有点长,所以很快会记录一个关于你回购的问题,以回答这些进一步的问题:-)