docker - 部署java/python项目

这篇具有很好参考价值的文章主要介绍了docker - 部署java/python项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、docker - 部署 java 项目

1. 创建 mysql 容器

2. 验证mysql,dbserver 连接 mysql ,服务器ip:3306 ,账户:root 密码:123456

3. 创建tomcat容器

4. 验证:http://ip:80

5. 开发项目war包,放到tomcat容器webapps目录下即可

2、docker - 部署 python 项目

1. 在 gitee 下载源码zip包,并解压到D盘的 docker-python 目录下,pycharm中修改settings.py

2. 安装mysql容器

3. 安装gunicorn容器 [web的]

4. 安装nginx容器 [处理网站的静态资源]

5. 自定义 docker 网络

6. 关掉并删除所有容器

7. 停止不用的容器,确保部署代码的端口没有被占用,启动项目:

8. 重新执行以下 docker-compose up -d,并检查容器是否运行成功,如果失败,则docker logs -f 容器名,进行日志定位解决

9. 设置项目的初始密码

10. 验证

​🎁更多干货

完整版文档下载方式:


1、docker - 部署 java 项目

1. 创建 mysql 容器

docker run -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d daocloud.io/library/mysql:5.7.7
# 停止容器,删掉这个容器,重跑这条命令,不会重新下载镜像,会调用本地已经下载的镜像创建容器

2. 验证mysql,dbserver 连接 mysql ,服务器ip:3306 ,账户:root 密码:123456

3. 创建tomcat容器

docker run -d -p 80:8080 --rm daocloud.io/library/tomcat:8.0.45
# 80是因为腾讯云默认开启端口80,如果你设置了其他端口,需要在防火墙那开启端口

4. 验证:http://ip:80

5. 开发项目war包,放到tomcat容器webapps目录下即可

1、根目录下执行(war文件已经放到根目录下了): docker cp XGYSytest12.war 70:/user/local/tomcat/webapps
2、查看日志:docker logs -f tomcat容器标识
把war文件放进去,在浏览器就可以直接访问测试环境了,tomcat会解析war文件生成网站

2、docker - 部署 python 项目

1. 在 gitee 下载源码zip包,并解压到D盘的 docker-python 目录下,pycharm中修改settings.py

import os

# 报错不会显示在网页上
DEBUG = False
# 你允许访问的hostname名
ALLOWED_HOSTS = ["127.0.0.1", "localhost", "162.14.119.65"]
# 配置项目数据库,只修改了HOST的值为:数据库的容器名:auto_test_platform_mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'auto_test_plt',
        'USER': 'auto_test_plt',
        'PASSWORD': 'auto_test_plt',
        'HOST': 'auto_test_platform_mysql',
        'PORT': '3306',
    }
}

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

2. 安装mysql容器

项目根目录下创建文件 docker-compose.yml

Services:
  auto_test_platform_mysql:
    image: daocloud.io/library/mysql:5.7.7
    restart: always
    container_name: auto_test_platform_mysql
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./default.cnf:/etc/mysql/conf.d/default.cnf
    ports:
      - 3306:3306
    environments:
      MYSQL_ROOT_PASSWORD: 123456
      TZ: Asiz/Shanghai
      MYSQL_DATA_BASE: auto_test_plt
      MYSQL_USER: auto_test_plt
      MYSQL_PASSWORD: auto_test_plt
    networks:
      - net1

项目外面的创建文件 default.cnf

[mysqld]
character-set-server = utf8mb4
collection-server = utf8mb4_general_ci
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4

docker部署java项目,软件测试,docker,docker,测试工具,软件测试,软件测试工程师,测试开发

 

3. 安装gunicorn容器 [web的]

Gunicorn是一个WSGI HTTP Server,是针对Python的、在Unix系统上运行的、用来解析HTTP请求的网关服务。特点是:能和大多数的Python web框架兼容;使用简单;轻量级的资源消耗;高性能。相当于java里面的tomcat,对静态资源的处理不够好,所以需要nginx来管理静态资源

  • 1、创建 requirements.txt
Django==3.2.9
mysqlclient==2.1.0
gunicorn
  • 2、创建 dockerfile
FROM python:3.8
COPY ./requirements.txt /app/
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /app/requirements.txt
ENTRYPOINT cd /app/auto_test_platform; python manage.py collectstatic -c --no-input; python manage.py migrate; gunicorn -b 0.0.0.0:8000 auto_test_platform.wsgi;
  • 3、编辑 docker-compose.py 文件,制定 gunicorn容器
auto_test_platform_gunicorn:
  build:
    conttext: ./
    dockerfile: Dockerfile
  restart: always
  environments:
    TZ: Asia/Shanghai
  image: auto_test_platform:1.0
  container_name: auto_test_platform_gunicorn
  working_dir: /app/auto_test_platform
  volumes:
    - ./auto_test_platform:/app/auto_test_platform
  ports:
    - 8000:8000
  depends_on:
    - auto_test_platform_mysql
  networks:
    - net1

4. 安装nginx容器 [处理网站的静态资源]

  • 1、先处理nginx配置文件
server {
	listen		80;
	server_name	auto_test_platform;
	
	location /static/ {
		autoindex on;
		alias /static/;
	}
	
	location / {
		proxy_pass http://auto_test_platform_gunicorn:8000;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}
  • 2、编辑 docker-compose.py 文件,制定 nginx 容器
auto_test_platform_nginx:
  image: nginx:latest
  container_name: auto_test_platform_nginx
  volumes:
    - ./auto_test_platform/static:/static
    - ./auto-test-platform-nginx.conf:/etc/nginx/conf.d/default.conf
  ports:
    - 8088:80
  depends_on:
    - auto_test_platform_gunicorn
  networks:
    - net1

5. 自定义 docker 网络

把3容器通过桥接方式放在一个网络,方便他们可以用容器名相互访问

Services:
  auto_test_platform_mysql:
    image: daocloud.io/library/mysql:5.7.7
    restart: always
    container_name: auto_test_platform_mysql
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./default.cnf:/etc/mysql/conf.d/default.cnf
    ports:
      - 3306:3306
    environments:
      MYSQL_ROOT_PASSWORD: 123456
      TZ: Asiz/Shanghai
      MYSQL_DATA_BASE: auto_test_plt
      MYSQL_USER: auto_test_plt
      MYSQL_PASSWORD: auto_test_plt
    networks:
      - net1

  auto_test_platform_gunicorn:
    build:
      conttext: ./
      dockerfile: Dockerfile
    restart: always
    environments:
      TZ: Asia/Shanghai
    image: auto_test_platform:1.0
    container_name: auto_test_platform_gunicorn
    working_dir: /app/auto_test_platform
    volumes:
      - ./auto_test_platform:/app/auto_test_platform
    ports:
      - 8000:8000
    depends_on:
      - auto_test_platform_mysql
    networks:
      - net1

  auto_test_platform_nginx:
    image: nginx:latest
    container_name: auto_test_platform_nginx
    volumes:
      - ./auto_test_platform/static:/static
      - ./auto-test-platform-nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - 8088:80
    depends_on:
      - auto_test_platform_gunicorn
    networks:
      - net1

networks:
  net1:
    driver: bridge

6. 关掉并删除所有容器

docker-compose down

7. 停止不用的容器,确保部署代码的端口没有被占用,启动项目:

docker-compose up -d 启动日志:


[+] Running 7/8
 ⠿ auto_test_platform_nginx Pulled                                                                                                                                                                       7.5s
   ⠿ e5ae68f74026 Pull complete                                                                                                                                                                          4.1s
   ⠿ 21e0df283cd6 Pull complete                                                                                                                                                                          4.9s
   ⠿ ed835de16acd Pull complete                                                                                                                                                                          5.0s
   ⠿ 881ff011f1c9 Pull complete                                                                                                                                                                          5.0s
   ⠿ 77700c52c969 Pull complete                                                                                                                                                                          5.1s
   ⠿ 44be98c0fab6 Pull complete                                                                                                                                                                          5.2s
 ⠿ auto_test_platform_gunicorn Error                                                                                                                                                                    35.5s
Sending build context to Docker daemon  72.39MB
Step 1/4 : FROM python:3.8
3.8: Pulling from library/python
5e0b432e8ba9: Pull complete
a84cfd68b5ce: Pull complete
e8b8f2315954: Pull complete
0598fa43a7e7: Pull complete
83098237b6d3: Pull complete
b92c73d4de9a: Pull complete
ef9b6ee59783: Pull complete
c1f6285e6406: Pull complete
a0ee73333012: Pull complete
Digest: sha256:881e0df149c29af8b29a973a9e80814dae6cddf123fe38a0bcac71864c85fb8a
Status: Downloaded newer image for python:3.8
 ---> f746089c9d02
Step 2/4 : COPY ./requirements.txt /app/
 ---> cf8dab81cbac
Step 3/4 : RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /app/requirements.txt
 ---> Running in 23f583394c99
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting Django==3.2.9
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a8/ca/e88eb097959c48cd313dfc4bc394699a48fe5c158ed3a64c13e4fa46c1fd/Django-3.2.9-py3-none-any.whl (7.9 MB)
Collecting mysqlclient==2.1.0
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/de/79/d02be3cb942afda6c99ca207858847572e38146eb73a7c4bfe3bdf154626/mysqlclient-2.1.0.tar.gz (87 kB)
Collecting gunicorn
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e4/dd/5b190393e6066286773a67dfcc2f9492058e9b57c4867a95f1ba5caf0a83/gunicorn-20.1.0-py3-none-any.whl (79 kB)
Collecting pytz
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d3/e3/d9f046b5d1c94a3aeab15f1f867aa414f8ee9d196fae6865f1d6a0ee1a0b/pytz-2021.3-py2.py3-none-any.whl (503 kB)
Collecting asgiref<4,>=3.3.2
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/fe/66/577f32b54c50dcd8dec38447258e82ed327ecb86820d67ae7b3dea784f13/asgiref-3.4.1-py3-none-any.whl (25 kB)
Collecting sqlparse>=0.2.2
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/05/40/d836d55fb3f467243ee839ab7b814822fda522cd395fa41e282684e71ee5/sqlparse-0.4.2-py3-none-any.whl (42 kB)
Requirement already satisfied: setuptools>=3.0 in /usr/local/lib/python3.8/site-packages (from gunicorn->-r /app/requirements.txt (line 3)) (57.5.0)
Building wheels for collected packages: mysqlclient
  Building wheel for mysqlclient (setup.py): started
  Building wheel for mysqlclient (setup.py): finished with status 'done'
  Created wheel for mysqlclient: filename=mysqlclient-2.1.0-cp38-cp38-linux_x86_64.whl size=113481 sha256=af552566c448c8f6fcf2b984745c92ee1614d375be5afe41ec7187ce962b1645
  Stored in directory: /root/.cache/pip/wheels/46/f8/f5/836501cfe21c884346cf554d596e63d4107dc5a30e5c6922ea
Successfully built mysqlclient
Installing collected packages: sqlparse, pytz, asgiref, mysqlclient, gunicorn, Django
Successfully installed Django-3.2.9 asgiref-3.4.1 gunicorn-20.1.0 mysqlclient-2.1.0 pytz-2021.3 sqlparse-0.4.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
 ---> cda5bf0476f1
Step 4/4 : ENTRYPOINT cd /app/auto_test_platform; python manage.py collectstatic -c --no-input; python manage.py migrate; gunicorn -b 0.0.0.0:8000 auto_test_platform.wsgi;
 ---> Running in 3ca4e1573bc8
 ---> aa0ca134a4be
Successfully built aa0ca134a4be
Successfully tagged auto_test_platform:1.0

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
[+] Running 4/4
 ⠿ Network docker-python_net1             Created                                                                                                                                                        0.1s
 ⠿ Container auto_test_platform_mysql     Started                                                                                                                                                        0.5s
 ⠿ Container auto_test_platform_gunicorn  Started                                                                                                                                                        1.4s
 ⠿ Container auto_test_platform_nginx     Started   

8. 重新执行以下 docker-compose up -d,并检查容器是否运行成功,如果失败,则docker logs -f 容器名,进行日志定位解决

docker部署java项目,软件测试,docker,docker,测试工具,软件测试,软件测试工程师,测试开发

 

9. 设置项目的初始密码

  • docker images
  • docker exec -it gun容器名 bash,执行 python manage.py createsuperuser

10. 验证

  • gunciorn容器正常: https://ip:8000/admin
  • nginx容器正常:https://ip:8088/admin

​🎁更多干货


docker部署java项目,软件测试,docker,docker,测试工具,软件测试,软件测试工程师,测试开发

 完整版文档下载方式:

这些资料,对于从事【软件测试】等相关工作的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。

在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。


如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!文章来源地址https://www.toymoban.com/news/detail-761419.html

到了这里,关于docker - 部署java/python项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试简历项目经验怎么写,没有项目经验?

    怎么办?只能接受低薪工作吗?No No No。本文就教大家如何解决这个问题。 为了帮助大家彻底解决“没有项目”这个拦路虎,接下来文章将从以下几个方面进行展开: 1、应该去哪找项目? 2、在众多的项目中,该怎么挑选适合自己的? 3、找到一个项目,应该怎么写到简历中

    2024年04月11日
    浏览(36)
  • 软件工程头歌软件测试(实验五)软件项目管理(实验六)

    白盒测试 单元测试 软件维护 维护的事件流 通常维护的事件流如下图所示: 维护记录的内容 1)程序标识; 2)源语句数; 3)机器指令数; 4)使用的程序设计语言; 5)程序安装的日期; 6)自安装以来程序运行次数; 7)自安装以来程序失效次数 8)程序变动的层次和标识

    2024年02月05日
    浏览(41)
  • 软件测试项目实战(附全套实战项目教程+视频+源码)

    开通博客以来,我更新了很多实战项目,但一部分小伙伴在搭建环境时遇到了问题。 于是,我收集了一波高频问题,汇成本篇,供大家参考,避免重复踩坑。 如果你还遇到过其他坑和未解决的问题,可在评论区回复 1. No matching distribution found for itypes==1.1.0 原因:pip3 install安装

    2023年04月15日
    浏览(34)
  • 软件测试项目实战,电商业务功能测试点汇总(全覆盖)

    支付功能怎么测试 1、从功能方面考虑: ①正常完成支付的流程; ②支付中断后继续支付的流程; ③支付中断后结束支付的流程; ④单订单支付的流程; ⑤多订单合并支付的流程; ⑥余额不足; ⑦未绑定银行卡; ⑧密码错误; ⑨密码错误次数过多; ⑩找人代付; ⑪弱网

    2024年02月12日
    浏览(41)
  • 软件测试项目经验简历包装怎么写?

    目录 一、引言 二、测试任务 三、测试进度 四、测试资源 五、测试策略 六、测试完成标准 七、风险和约束 八、问题严重程度描述和响应时间规范 九、测试的主要角色和职责 ​有需要实战项目的评论区留言吧! 软件测试是使用人工或者自动的手段来运行或者测定某个软件

    2024年02月12日
    浏览(26)
  • 软件测试之项目立项与需求评审

     📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢软件测试面试题分享: 1000道软件测试面试题及答案 📢软件测试实战项目分享: 纯接口项目-完整接口文档 📢软件测试实战项目分享:WEB 测试自动化项目实战 📢软件测试学习教程推

    2024年01月22日
    浏览(30)
  • IT项目管理之软件测试

    1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。 2. QC QA QM 对于软件质量而言,QC、QA、QM是三

    2024年02月08日
    浏览(28)
  • 软件测试项目管理系统(STM)

    1.产品介绍 凯云软件测试项目管理系统(Software Testing Management System,简称:STM)是为企业软件测试部门以及第三方软件测试机构打造的统一工作平台。该系统提供规范的测试流程,支持被测件接收、测试需求分析、测试用例设计、测试执行记录、测试问题处理、测试总结等

    2024年02月11日
    浏览(28)
  • 软件测试面试怎样介绍自己的测试项目?会问到什么程度?

    想知道面试时该怎样介绍测试项目?会问到什么程度? 那就需要换位思考, 思考HR在这个环节想知道什么。 HR在该环节普遍想获得的情报主要是下面这2个方面: 1)应聘者的具体经验和技术能力, 2)应聘者的团队的沟通能力、合作能力和问题解决能力。 了解到HR目的后,我

    2024年02月05日
    浏览(38)
  • 【软件测试】在Windows环境安装Docker(详细步骤)

    下载和安装 1、地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows/,直接下载 2、先检查是否开启电脑的虚拟化 依次控制面板-程序-启用或关闭Windows功能,把Hyper-v勾上。勾选后重启电脑 3、开启后双击下载的 \\\"Docker Desktop Installer.exe\\\"进行安装,直接一直选择下一步即可

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包