我有一个由四个容器组成的本地Docker设置:flask Web应用程序,MySQL,Redis和RQ worker。
该设置与Miguel Grinberg的Flask Mega-Tutorial基本相同。这是他的tutorial和他的code的链接。
在我的案例中,唯一的区别是,我已将他的导出博客帖子功能替换为rq-worker上运行的功能,而该功能却需要大量的计算并且可以长时间运行(30分钟)。
对我来说,将此应用程序部署到生产环境的最佳方法是什么?
我希望一次只能由一两个人访问,并且他们每周仅访问一次或两次。
我一直在研究Kubernetes的示例,但在将它们转换为我的设置并弄清楚如何部署到GCP方面遇到困难。我愿意接受其他部署选项。
这是教程中的docker run命令:
docker run --name redis -d -p 6379:6379 redis:3-alpine
docker run --name mysql -d -e MYSQL_RANDOM_ROOT_PASSWORD=yes \ -e MYSQL_DATABASE=flaskapp -e MYSQL_USER=flaskapp \ -e MYSQL_PASSWORD=mysqlpassword \ mysql/mysql-server:5.7
docker run --name rq-worker -d --rm -e SECRET_KEY=my-secret-key \ -e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \ -e [email protected] -e MAIL_PASSWORD=mysqlpassword \ --link mysql:dbserver --link redis:redis-server \ -e DATABASE_URL=mysql+pymysql://flaskapp:mypassword@dbserver/flaskapp \ -e REDIS_URL=redis://redis-server:6379/0 \ --entrypoint venv/bin/rq \ flaskapp:latest worker -u redis://redis-server:6379/0 dyson-tasks
docker run --name flaskapp -d -p 8000:5000 --rm -e SECRET_KEY=my_secret_key \ -e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \ -e [email protected] -e MAIL_PASSWORD=mypassword \ --link mysql:dbserver --link redis:redis-server \ -e DATABASE_URL=mysql+pymysql://flaskapp:mysqlpassword@dbserver/flaskapp \ -e REDIS_URL=redis://redis-server:6379/0 \ flaskapp:latest
我有一个由四个容器组成的本地Docker设置:flask Web应用程序,MySQL,Redis和RQ worker。设置基本上与Miguel Grinberg的Flask Mega-Tutorial相同。这是链接...
由于您使用Kubernetes和Google Cloud Platform标记了问题,所以我希望这是您想要的方向。