当前位置: 首页 > news >正文

Dockerfile打包部署常用操作

文章目录

  • 1、Dockerfile部署java程序(jar包)
    • 1.1、创建Dockerfile
    • 1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像
    • 1.3、创建启动容器
  • 2、Dockerfile部署vue
    • 2.1、创建dockerfile文件
    • 2.2、将打包的dist文件放到dockerfile同文件目录下
    • 2.3、在dockerfile同目录文件下创建目录conf.d,在conf.d下创建web.conf文件
    • 2.4、到Dockerfile执行打包镜像命令
    • 2.5、创建并运行容器


1、Dockerfile部署java程序(jar包)

1.1、创建Dockerfile

FROM java:8
MAINTAINER qingsong
VOLUME /home/wqswork/demofirst
ADD summer.jar demo1.jar
EXPOSE 8030
ENTRYPOINT ["java","-jar","demo1.jar"]
# 下面这句话限制容器的内存
#ENTRYPOINT ["/opt/infosec/cssp/jdk1.8.0_202/bin/java","-jar","-Xms1024m", "-Xmx1024m","-XX:+PrintGCDetails", "-XX:+PrintGCTimeStamps", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/infosec/cssp", "-Xloggc:/opt/infosec/cssp","/opt/infosec/cssp/cssp-csm.jar"]
# 下面这句是运行带配置文件的
#ENTRYPOINT ["java","-jar","demo1.jar", "--spring.profiles.active=dev"]
  • from java:8 拉取一个jdk为1.8的docker image
  • MAINTAINER qingsong 作者是qingsong
  • VOLUME /home/wqswork/demofirst 持久化地址
  • summer.jar 就是你上传的jar包,替换为jar包的名称
  • demo1.jar 是你将该jar包重新命名为什么名称,在容器中运行
  • expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
  • entrypoint 容器启动之后执行的命令,java -jar demo1.jar 即启动jar

1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像

# 注:一定要加“.”,否则构建失败
docker build -t demo1 .

1.3、创建启动容器

#这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always
docker run -d --restart=always --name demotest -p 8040:8030  demo1

2、Dockerfile部署vue

2.1、创建dockerfile文件

#wqs_20210331 dockerfile
#使用 nginx最新版本作为基础镜像
FROM nginx# 删除原来nginx自带的配置文件
RUN rm -vf /etc/nginx/conf.d/default.conf
# 复制自己写的配置文件
COPY ./conf.d/ /etc/nginx/conf.d/
#将当前文件夹的dist文件复制到容器的/usr/share/nginx/html目录
COPY ./dist /usr/share/nginx/html/#声明运行时容器暴露的端口(容器提供的服务端口,nginx这里默认式80端口,所以可以注释掉)
#EXPOSE 8080#CMD:指定容器启动时要运行的命令
CMD ["nginx", "-g", "daemon off;"]

2.2、将打包的dist文件放到dockerfile同文件目录下

2.3、在dockerfile同目录文件下创建目录conf.d,在conf.d下创建web.conf文件

server {listen       80;listen  [::]:80;server_name  localhost;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;}location /api/{proxy_pass http://172.17.0.1:7000/;proxy_redirect default;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

2.4、到Dockerfile执行打包镜像命令

  docker build -t my-vue-test .# 出现以下描述,构建镜像完成Successfully built 1a42038957c7Successfully tagged my-vue-test:latest

2.5、创建并运行容器

  docker run -d --restart=always --name myvue01 my-vue-tes
http://www.lryc.cn/news/395075.html

相关文章:

  • ArcGIS:探索地理信息系统的强大功能与实际应用
  • Python 全栈体系【三阶】(二)
  • 【VUE】 深入理解 Vue 动态路由:简介、实际开发场景与代码示例
  • Linux x86_64平台指令替换函数 text_poke_smp/bp
  • 海南云亿商务咨询有限公司口碑怎么样?
  • 航空数据管控系统-②项目分析与设计:任务2:使用Git或SVN管理项目(可选任务,只介绍Git安装)
  • 【面试题】串联探针和旁挂探针有什么区别?
  • LeetCode42(接雨水)[三种解法:理解动态规划,双指针,单调栈]
  • STM32-ADC+DMA
  • 代码随想录算法训练营第六十二天 | 108. 冗余连接、109. 冗余连接II、复习
  • 昇思MindSpore学习笔记6-01LLM原理和实践--FCN图像语义分割
  • 【FFMPEG基础(一)】解码源码
  • 第二证券股市资讯:深夜!突然暴涨75%!
  • flutter 使用wechat_assets_picker的权限检测
  • Mojo入门案例教程(上手篇)
  • 如何在window执行mkfile
  • Nginx 是一个非常流行的 Web 服务器和反向代理服务器
  • mysql怎么调整缓冲区大小
  • 计算机组成原理学习笔记(一)
  • Vue3 对跳转 同一路由传入不同参数的页面分别进行缓存
  • LinearLayout的测量流程
  • 数据无忧:Ubuntu 系统迁移备份全指南
  • 中国IDC圈探访北京•光子1号金融算力中心
  • [Unity入门01] Unity基本操作
  • vivado DELAY_VALUE_XPHY、DIFF_TERM
  • C++语言相关的常见面试题目(三)
  • 代码随想录-Day53
  • Android 如何通过代码实时设置EditTextView光标
  • 202488读书笔记|《365日创意文案》——无聊的 到底是这世间, 还是自己?懂得忘却的人才能前进
  • iperf3: error - unable to connect to server: No route to host