文章目录

  • 1. springboot应用
    • 本地启动
    • docker部署
  • 2. python 应用
    • 本地启动
    • dockerfile
    • docker 多环境启动

   作为一个开发人员,我们至少会接触到两种环境或三种,比如我们需要先在开发环境上开发测试功能,开发完毕后,同步到测试环境,测试环境通过后,再发布到线上环境,也就是正式环境或生产环境,我们怎样去区分多个环境和用好多个环境呢? 一般遵守下面2个原则:

  • 不同环境的配置是不相同的,比如测试环境使用的redis服务器是192.168.111.110, 正式环境用的是 192.168.123.110, 此处打个比方,并不是真实的ip。
  • 不同环境的代码应该隔离, 比如dev环境的代码放到git的dev分支上,pro环境的代码放到master分支上,这样做的好处是避免环境代码污染。

   现在比较流行的两大语言java和python, 下文将解释如何区分java和python多个环境。

1. springboot应用

   springboot应用,可以直接通过application.yml文件名的application后缀来区分开发、测试和生产的配置。
   在resource 文件夹下添加 application-dev.yml , application-uat.yml,application-prod.yml等,每个配置对应一个环境。

本地启动

   在Active Profiles里添加后缀即可。

docker部署

通过 -e 参数在run的时候指定profile:

SPRING_PROFILES_ACTIVE=prod

例如:
docker run --name my-shop -d -p 8001:8080 -e SPRING_DATASOURCE_PASSWORD=**** -e SPRING_DATA_ELASTICSEARCH_CLUSTER-NODES=116.62.146.90:9300 -e SPRING_PROFILES_ACTIVE=prod -e SPRING_RABBITMQ_HOST=172.17.0.6 116.62.146.90/my-shop/my-shop:0.0.8-SNAPSHOT
   注: 我们可以通过 -e 参数注入 yml配置文件里的任意属性,想当于覆盖配置, -e 后接的参数用 “_” 拼接。

2. python 应用

   将主配置settings文件复制出来多份,分别修改成pro,local等,settings.py可作为测试环境的配置,如下:

本地启动

在parameters里添加启动参数:

runserver 8006  --setting=my_site.settings


   那么python应用怎么区分线上环境呢?

dockerfile

FROM python:3.7
ADD . /usr/local/myapp/school_education_saas
WORKDIR /usr/local/myapp/school_education_saas
RUN pip install -i https://pypi.douban.com/simple --trust -host=pypi.douban.com -r requirements.txt
ENV PORT=8006 PROFILE=school_edu_prj.settings
EXPOSE $PORT
CMD sh start.sh

在runserver的时候通过变量来设置端口和配置文件, 命令脚本:

python manage.py makemigrations --merge
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:$PORT --setting=$PROFILE

docker 多环境启动

   我们可以借助docker 容器的环境变量,在run的时候将port和settings注入到容器里,这样我们可以在本地把不同环境的配置文件配好,下面解释如何启动不同环境的实例。
  例如, dev环境, 我们使用8006端口,配置使用 settings.py文件,prod环境,我们使用8007端口,配置使用prosettings.py文件。
   dev 环境启动命令: docker run --name my_site --env PORT=8006 --env PROFILE=school_edu_prj.settings -d -p 8006:8006 my_site

   pro 环境启动命令: docker run --name my_site --env PORT=8007 --env PROFILE=school_edu_prj.prosettings -d -p 8007:8007 my_site

如何用docker发布多个Springboot、Python应用环境(含开发、测试、生产)相关推荐

  1. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做"全栈"(full ...

  2. 大年初七,发paper、学Python...分享一下你的学习计划吧~

    今天是大年初七,今天是人日,上天造物顺序一鸡二狗三羊...七人!快快恢复元气,努力工作! 欢迎参与今天的话题讨论:发paper.学Python...分享一下你的学习计划吧~ 欢迎留言,参与今天的话题讨 ...

  3. docker 中部署一个springBoot项目

    docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml [java] view plaincopy <?xml version= ...

  4. pythonweb开发-如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做"全栈"(full ...

  5. 使用ISA2004发布多个Web站点之二

    在"使用ISA2004发布多个Web站点之一(http://guoxuemin.blog.51cto.com/379574/155839)"中,我们探讨了使用ISA2004发布内网 ...

  6. 群晖python套件包_利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)

    在帖子<利用群晖Docker安装ubuntu16.04搭建python网站服务器(安装篇)(地址:http://www.cirdown.com:81/thread-185-1-1.html)&g ...

  7. Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99%

    两个奇技淫巧,将 Docker 镜像体积减小 99% 使用Docker运行程序 Docker的基本使用(部署python项目) 一.准备项目 我写的是一个爬取某ppt网站的代码,就一个ppt1.py是 ...

  8. python传文件给堡垒机上远程的另一个机器_如何用hive调度堡垒机上的python脚本...

    工作中,如果我们本地要操作的数据量大,那么主机是跑不起来python脚本的,这个时候,就要用到服务器(也叫堡垒机)了.那么如何用HIVE调用堡垒机上的python脚本呢?今天小白就总结一下步骤和一些注 ...

  9. docker安装以及部署springboot项目

    一.docker安装 1.安装 Docker Engine-Community 安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本: ...

最新文章

  1. python 操作word页眉表格_python批量设置多个Excel文件页眉页脚的脚本
  2. Spring-使用加密的属性文件02
  3. 原创 | 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
  4. 985博士妈妈辅导女儿作业被气哭:博士父母带娃真是太难了...
  5. JS DOM操作基础
  6. MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息...
  7. rosdep init 和rosdep update的解决方法,亲测有效
  8. python staticmethod
  9. eclipse修改java编译的版本
  10. How to recover deleted data from SQL Server
  11. efsframe java_EfsFrame(java开发框架)
  12. 深度学习之语义分割(SegNet)
  13. Nick Szabo:可信任计算的黎明
  14. Java处理音频文件wav转mp3/mp3转wav
  15. 前缀和差分 精讲(一维、二维、附例题!)
  16. html5建站软件工具有哪些
  17. 超高速定位文件,电脑必备软件
  18. 使用springboot写一个记事小账本
  19. Linux开放1521端口允许网络连接Oracle Listene
  20. 独家 | 离开百度后,王劲创办的景驰将于2020年6月量产自动驾驶汽车

热门文章

  1. 计算机输入法知识讲解,26、认识输入法--电脑基础知识
  2. 20220517关闭MT6765的android8.1系统的efuse分区
  3. 集成webhook实现自动刷新
  4. 动图解析,自由泳最容易出现的5个错误动作
  5. U盘插入电脑 不显示u盘盘符
  6. 从头学习爬虫(四十四)高阶篇----wzwschallenge破解及其wzws_cid的获取
  7. 爱普生Epson Stylus COLOR 980 打印机驱动
  8. 千兆双频无线服务器,详细介绍:千兆双频WiFi模块SKW78性能参数
  9. 一文讲透芯片后仿中的SDF
  10. QSWAT-AW应用中遇到的一些bug