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

相关推荐
CrissChan42 分钟前
Pycharm 函数注释
java·前端·pycharm
tonngw43 分钟前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
小小小小宇1 小时前
Vue.nextTick()笔记
前端
小约翰仓鼠3 小时前
vue3子组件获取并修改父组件的值
前端·javascript·vue.js
Lin Hsüeh-ch'in3 小时前
Vue 学习路线图(从零到实战)
前端·vue.js·学习
烛阴3 小时前
bignumber.js深度解析:驾驭任意精度计算的终极武器
前端·javascript·后端
debug 小菜鸟3 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
计蒙不吃鱼3 小时前
一篇文章实现Android图片拼接并保存至相册
android·java·前端
SpikeKing3 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm