前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker之Dockerfile实战(三)

Docker之Dockerfile实战(三)

作者头像
无涯WuYa
发布2021-12-31 14:18:04
3550
发布2021-12-31 14:18:04
举报

Docker之Dockerfile实战(二)中详细了介绍了使用Dockerfile来部署基于Python语言开发的应用程序和服务,下面详细的演示使用Dockerfile来部署基于jar的应用程序,也就是Java的技术栈。

创建一个SpringBoot的项目后,编写一个简单的REST API的接口信息,然后使用maven进行打包成jar(这部分在这里就不详细的演示了)。下面具体显示Dockerfile的内容:

代码语言:javascript
复制
FROM java:8
MAINTAINER 无涯
VOLUME /tmp
#创建app的目录
RUN mkdir /app
#把java文件复制到app的目录下
COPY  app-0.0.1-SNAPSHOT.jar  /app
#切换目录到app
WORKDIR /app
EXPOSE 8080
#启动服务
CMD ["java","-jar","app-0.0.1-SNAPSHOT.jar"]

编写完Dockerfile的文件后,下来开始构建,构建的具体命令为:

代码语言:javascript
复制
docker build -t app -f Dockerfile  .

执行如上的命令下,输出的信息具体为:

代码语言:javascript
复制
Sending build context to Docker daemon  20.05MB
Step 1/8 : FROM java:8
---> d23bdf5b1b1b
Step 2/8 : MAINTAINER 无涯
---> Running in 89fbeb5a6524
Removing intermediate container 89fbeb5a6524
---> 275a7eedec2e
Step 3/8 : VOLUME /tmp
---> Running in e24b88b4524d
Removing intermediate container e24b88b4524d
---> 988d1613b030
Step 4/8 : RUN mkdir /app
---> Running in cac439e23439
Removing intermediate container cac439e23439
---> b3bc97168486
Step 5/8 : COPY  app-0.0.1-SNAPSHOT.jar  /app
---> bd96007bbc39
Step 6/8 : WORKDIR /app
---> Running in 1dc06649d4d2
Removing intermediate container 1dc06649d4d2
---> abb51050148e
Step 7/8 : EXPOSE 8080
---> Running in 25cfc2ec7215
Removing intermediate container 25cfc2ec7215
---> a97cead9050c
Step 8/8 : CMD ["java","-jar","app-0.0.1-SNAPSHOT.jar"]
---> Running in b069aca15a71
Removing intermediate container b069aca15a71
---> fe8dd48b3ee7
Successfully built fe8dd48b3ee7
Successfully tagged app:latest

使用Docker所有的镜像信息,就会存在app的镜像,下来可以开始启动,启动的命令具体为:

代码语言:javascript
复制
docker run --rm  -p 8080:8080  app

执行后,输出的信息具体为:

下来具体来演示容器,编写测试代码来进行验证,测试代码内容为:

代码语言:javascript
复制
import requests

def test_image_app():
   r=requests.get(url="http://localhost:8080/index")
   assert r.status_code==200

验证结果信息如下所示:

代码语言:javascript
复制
python3 -m pytest -v  test_app.py
Test session starts (platform: darwin, Python 3.7.4, pytest 6.2.5, pytest-sugar 0.9.4)
test_app.py::test_image_app ✓      100% ██████████

感谢您的阅读,后续会持续的更新。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档