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

通过制作docker镜像的方式在阿里云部署前端后台服务

前端Dockerfile文件的内容:

FROM nginx:版本,如果不指定,默认是latest

COPY dist/ /usr/share/nginx/html/dist

COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 端口


前端sh脚本文件内容:

appName=项目名

tar -xvf dist.tar

tag=$(date "+%Y%m%d%H%M%S")

echo echo "version : $appName-v$tag"

docker build -t $appName:$tag .

docker tag $appName:$tag 仓库地址:$appName-v$tag

docker push 仓库地址:$appName-v$tag


后端Dockerfile文件内容:

# 构建镜像,执行命令
FROM jdk镜像:
版本,如果不指定,默认是latest 
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 时区问题
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

# 字体
# COPY fonts/simsun.ttc /usr/share/fonts/simsun.ttc
VOLUME /tmp

COPY 文件名.jar /opt/

ENTRYPOINT ["java", "-jar", "/opt/文件名.jar"]


后端sh脚本文件内容:

#!/usr/bin/env bash

#启动脚本的时候,传递版号 sh *.sh V1
app_name='文件名'
app_dir=. 
tag_name=$(date "+%Y%m%d%H%M%S")

# 删除镜像
echo "......删除镜像......"
images=(`docker images | grep ${app_name} | awk '{print $1,$2}'`)
idx=1
for((i=0;i<${#images[@]};i++))
do
   if [ $(($idx % 2)) = 0 ];then
    docker rmi "${images[i-1]}:${images[i]}"
    echo "${images[i-1]}:${images[i]} 删除"
   fi
   ((idx++))
done

# 创建镜像
echo "..... 创建镜像......."
echo  "${app_name}:${tag_name}"
docker build -f ${app_dir}/Dockerfile -t "${app_name}:${tag_name}" .

# 获取创建完镜像的tag id
tag_id=`docker images | grep ${app_name} | awk '{print $3}'`
echo "tag=${tag_id}"

# 推送到k8s云上
docker tag ${tag_id} 仓库地址:${app_name}${tag_name}
docker push 仓库地址:${app_name}${tag_name}

echo "创建镜像完成"


具体操作步骤:

将前后端各自的脚本文件放到对应的目录下去执行,这里有一个前提,需要有相应的docker镜像。

docker镜像的来源可以从公共仓库里面下载,不过涉及到访问外网。国内也有镜像,不同的公司也搭建了私服。可以通过命令将镜像打成tar包拷出来,再用命令导入到服务器上

打成tar包的命令如下:

docker save -o  文件名.tar  nginx:版本号

导入tar包的命令如下:

docker load < 文件名.tar

导入完成后用docker images查看一下镜像

 

 


http://www.kler.cn/a/536834.html

相关文章:

  • 时序数据库:Influxdb详解
  • hot100(9)
  • 智能门铃市场:开启智能家居新时代
  • 详解python的单例模式
  • PySpark学习笔记5-SparkSQL
  • MySQL数据库 (三)- 函数/约束/多表查询/事务
  • cuda手搓CNN识别手写数字
  • 【SpringBoot如何解决跨域问题?】
  • 【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-dist.py
  • 离线统信系统的python第三方库批量安装流程
  • DeepSeek和ChatGPT的优劣或者区别(答案来DeepSeek和ChatGPT)
  • IDEA使用Auto-dev+DeepSeek 10分钟快速集成,让java开发起飞
  • 关于java中Date类型和mysql中DATETIME类型时间精度问题
  • 二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号
  • MySQL-mysql zip安装包配置教程
  • Web - CSS3过渡与动画
  • windows安装linux子系统【ubuntu】操作步骤
  • 数据分析:企业数字化转型的金钥匙
  • 储能系统-系统架构
  • 05vue3实战-----配置项目代码规范
  • 【Linux网络编程】之配置阿里云安全组
  • EPM570T CPLD程序开发
  • PHP之hyperf学习笔记
  • Kafka 无消息丢失最佳实战
  • 公司配置内网穿透方法笔记