通过制作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查看一下镜像

相关推荐
小鸡,啄米9 分钟前
centos9安装docker 配置docker代理
运维·docker·容器
水银嘻嘻16 分钟前
12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
运维·前端·自动化
小嘟嚷ovo38 分钟前
h5,原生html,echarts关系网实现
前端·html·echarts
十一吖i1 小时前
Vue3项目使用ElDrawer后select方法不生效
前端
只可远观1 小时前
Flutter目录结构介绍、入口、Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
前端·flutter
周胡杰1 小时前
组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
前端·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
敲代码的小吉米1 小时前
前端上传el-upload、原生input本地文件pdf格式(纯前端预览本地文件不走后端接口)
前端·javascript·pdf·状态模式
是千千千熠啊1 小时前
vue使用Fabric和pdfjs完成合同签章及批注
前端·vue.js
遇见火星2 小时前
jenkins流水线常规配置教程!
运维·docker·jenkins
九月TTS2 小时前
TTS-Web-Vue系列:组件逻辑分离与模块化重构
前端·vue.js·重构