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

Dockerfile样例

一、基础jar镜像制作

## Dockerfile
FROM registry.openanolis.cn/openanolis/anolisos:8.9
RUN mkdir /work
ADD jdk17.tar.gz fonts.tar.gz /work/
RUN yum install fontconfig ttmkfdir -y && yum clean all && \chmod -R 755 /work/fonts
ADD fonts.conf /etc/fonts/fonts.conf
ADD Shanghai /etc/localtime
ENV JAVA_VERSION="17" \JAVA_HOME="/work/jdk17" \PATH="${PATH}:/work/jdk17/bin" \LANG=zh_CN.UTF-8
EXPOSE 8080或者:## Dockerfile
FROM registry.openanolis.cn/openanolis/anolisos:8.9
RUN mkdir /work
ADD jdk17.tar.gz /work/
RUN yum install fontconfig ttmkfdir -y && yum clean all
ADD Shanghai /etc/localtime
ENV JAVA_VERSION="17" \JAVA_HOME="/work/jdk17" \PATH="${PATH}:/work/jdk17/bin" \LANG=zh_CN.UTF-8
EXPOSE 8080# 构建基础环境# docker build -t 192.168.2.51/crm/base:v1 .说明:此基础镜像修改了时区为上海,添加了字体、jdk17,使用8080作为应用默认端口

二、用上面的基础镜像制作jar包应用镜像

## # cat Dockerfile 
FROM 192.168.2.51/crm/base:v1
COPY platform-crm-api.jar /work/app.jar
CMD  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/work/app.jar"]## 构建
# docker build -t 192.168.2.51/crm/crm-api:v8 .## 上传
# docker push 192.168.2.51/crm/crm-api:v8说明:此应用的配置文件是通过调用系统变量获取到如数据及中间件的连接地址及账户的。所以这里不用使用-D传输变量。在后期通过k8s进行传输变量到镜像即可。

应用变量使用截图:

k8s传输变量截图:

docker 运行传入变量一:

# docker run --env-file env-file.txt 192.168.2.51/crm/crm-api:v8

# docker run --env-file env-file.txt 192.168.2.51/crm/crm-api:v8  env  # 查看传入变量

docker 运行传入变量二:

# docker run -d -e database_password=Dev_tmp_0507 -e database_url=192.168.2.154:3306/hs_crm_sys -e database_username=kyc_cle -e redis_host=192.168.2.193 -e redis_port=6379 192.168.2.51/crm/crm-api:v8

三、vue应用镜像制作

## 应用镜像
# cat Dockerfile 
FROM registry.openanolis.cn/openanolis/nginx:1.14.1-8.6
ADD dist.tar /usr/share/nginx/html## configmap# cat configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:name: environmentnamespace: crm
data:environment.js: |window.webConfig={"VITE_DOMAIN_URL_VUE_BOOT":"http://192.168.2.34:31201"}## yaml文件# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:name: crm-webnamespace: crm
spec:replicas: 2selector:matchLabels:app: crm-webtemplate:metadata:labels:app: crm-webspec:containers:- name: crm-webimage: 192.168.2.51/crm/platform-crm-web:v4ports:- containerPort: 80envFrom:volumeMounts:- name: crm-webmountPath: /usr/share/nginx/html/environment.jssubPath: environment.js- name: tzmountPath: /etc/localtimelivenessProbe:tcpSocket:port: 80initialDelaySeconds: 40periodSeconds: 10readinessProbe:tcpSocket:port: 80initialDelaySeconds: 40periodSeconds: 10volumes:- name: crm-webconfigMap:name: environmentitems:- key: "environment.js"path: "environment.js"- name: tzhostPath:path: /etc/localtimednsPolicy: "None"dnsConfig:nameservers:- 10.96.0.10searches:- svc.cluster.local- cluster.local
---
apiVersion: v1
kind: Service
metadata:name: crm-webnamespace: crm
spec:type: NodePortselector:app: crm-webports:- protocol: TCPport: 80targetPort: 80nodePort: 31641

configmap在deploymen中挂载截图

四、未测试的方法

# 基础镜像
FROM ubuntu:latest# 设置工作目录
WORKDIR /app# 创建目录
RUN mkdir -p /dir1 /dir2# 复制多个文件到多个目录
RUN cp /app/file1.txt /dir1/ && \cp /app/file2.txt /dir2/ && \cp /app/file3.txt /dir1/ && \cp /app/file4.txt /dir2/

http://www.lryc.cn/news/463974.html

相关文章:

  • MYSQL-多表查询
  • MySQL改密码后不生效问题
  • 15分钟学Go 第1天:Go语言简介与特点
  • UDP/TCP协议
  • gitee建立/取消关联仓库
  • 在 Windows 环境下,Git 默认会自动处理 CRLF 和 LF 之间的转换。
  • Kibana可视化Dashboard如何基于字段是否包含某关键词进行过滤
  • 架构师之路-学渣到学霸历程-23
  • 怎么修改编辑PDF的内容,有这4个工具就行了。
  • 腾讯云宝塔面板前后端项目发版
  • C语言的结构体定义 java赋值关系运算符
  • 重学SpringBoot3-Spring WebFlux简介
  • distinct 和 group by
  • RTThread-Nano学习一-基于MDK移植
  • Vue中v-bind对样式控制的增强—(详解v-bind操作class以及操作style属性,附有案例+代码)
  • 【分布式微服务云原生】《ZooKeeper 深度探秘:分布式协调的强大利器》
  • 打造高性能在线电子表格:WebGL 渲染引擎 Kola2d 自研之路
  • 深入理解WPF中的命令机制
  • 基础算法(6)——模拟
  • 2025年广西高考报名流程图解(手机端)
  • 十、结构型(外观模式)
  • 10.12Python数学基础-矩阵(上)
  • 重学SpringBoot3-安装Spring Boot CLI
  • 代码复现(五):GCPANet
  • 联邦学习实验复现—MNISIT IID实验 pytorch
  • 2015年-2017年 计算机技术专业 程序设计题(算法题)实战_c语言程序设计数据结构程序设计分析
  • 个人用计算理论导引笔记(待补充)
  • 2024年诺贝尔物理学奖揭晓:AI背后的“造梦者”是谁?
  • 2024年AI 制作PPT新宠儿,3款神器集锦,让你的演示与众不同
  • CLion和Qt 联合开发环境配置教程(Windows和Linux版)