Dockerfile文件内容
# 指定我们的基础镜像
FROM openjdk:8-jdk-alpine
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
# 指定运行时的工作目录
WORKDIR /shxgsoft/shxg-server/whzx-api
# 将构建产物jar包拷贝到运行时目录中
COPY xxx.jar ./whzx-api.jar
# 暴露8080端口
EXPOSE 8080
#openjdk中加载字体库-解决空指针异常
#RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
&& apk update \
&& apk upgrade \
&& apk --no-cache add ttf-dejavu fontconfig
# 指定容器启动时要运行的命令
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Dspring.profiles.active=dev -jar whzx-api.jar"]
deploy.sh 脚本文件
#!/bin/bash
# 定义镜像名称和版本号
IMAGE_NAME=pmp-api
IMAGE_TAG=latest
# 定义容器名称
CONTAINER_NAME=pmp-api
# 停止并删除现有的 Docker 容器
echo "Stopping and removing existing container..."
docker stop ${CONTAINER_NAME} > /dev/null 2>&1
docker rm ${CONTAINER_NAME} > /dev/null 2>&1
# 删除镜像
docker rmi ${IMAGE_NAME}:${IMAGE_TAG}
# 构建 Docker 镜像
echo "Building Docker image..."
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
# 运行新的 Docker 容器
echo "Starting new container..."
docker run -d --name ${CONTAINER_NAME} -p 8310:30000 ${IMAGE_NAME}:${IMAGE_TAG}
echo "Container is up and running!"