• docker 构建jar包/vue镜像以及发布


    1、maven 对项目进行jar/war打包:
    如:my-notepad-service-1.006.jar
    2、构建镜像:
    新建Dockerfile内容有:

    
    FROM openjdk:8-jdk-alpine
    # 作者
    MAINTAINER Yang douya
    # jar包添加到镜像中 第一个是maven打包jar 第二个为在镜像中得jar名称 通常aven打包jar都会价版本号 镜像版本不用
    ADD  my-notepad-service.jar  my-notepad-service.jar
    # 应用中有中文标识 特别是验证码会报java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion异常 解决增加字体
    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
    
    # 解决时差8小时问题
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    # 暴露端口号
    EXPOSE 8085
    # 容器启动之后要执行的命令
    ENTRYPOINT ["java", "-jar", "my-notepad-service.jar"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    以上Dockerfile设置时区,但是运行之后容器依然存在时间错误问题,所以必须在启动中加入同宿主机时间同步
    -v /etc/localtime:/etc/localtime
    对于已经存在了的容器修改时间
    docker exec -it [容器] /bin/sh

    执行下方命令同步宿主机时间

    ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    如果执行上方命令出错 需要安装时间插件 tzdata

    # centos
    yum update && yum  install -y tzdata
    # ububtu
    apt-get update && apt-get install -y tzdata
    
    • 1
    • 2
    • 3
    • 4

    将Dockerfile和my-notepad-service-1.006.jar jar文件放到同一个目录下
    使用命令构建镜像,注意最后一个.为DockerFile文件和jar文件在同一个目录:

    docker build -t my-notepad-service:1.006 .
    
    • 1

    docker image 查看即可
    执行启动镜像-v /etc/localtime:/etc/localtime 目的是保证容器时间和宿主机时间一致

    docker run --name my-notepad-service \
    -p 8085:8085 \
    -v /etc/localtime:/etc/localtime \
    -d my-notepad-service:1.006
    
    • 1
    • 2
    • 3
    • 4

    构建vue项目
    先安装nginx:1.24.0后面全部使用该镜像依赖
    1、npm run build XXX 打包vue项目
    2、编写Dockerfile

    
    # 设置基础镜像,这里使用最新的nginx镜像,前面已经拉取过了
    FROM nginx:1.24.0
    # 定义作者
    MAINTAINER Yang Douya 
    # 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
    COPY dist/ /usr/share/nginx/html/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、将打包好得dist目录同Dockerfile上传到服务器某个目录下
    4、执行docker 构建

    docker build -t my-notepad-admin:1.001 .
    
    • 1
    # 运行
    docker run --name=my-notepad-admin \
    -p 7681:80 \
    -d my-notepad-admin:1.001
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    【Qt】信号和槽机制
    神经网络做什么比较合适,神经网络和计算机网络
    尚硅谷Vue系列教程学习笔记(2)
    Java Metrics系统性能监控工具
    java.util.concurrent 学习笔记(2) 线程池基础
    【虹科分享】什么是Redis数据集成(RDI)?
    【信息量判别块:语义监督:GAN:IVIF】
    Azure Data Factory(六)数据集类型为Dataverse的Link测试
    C++ 基于boost.asio封装的日志库,支持输出到文件、控制台和syslog远程日志,支持变长参数的日志输出
    1031 查验身份证 (分数 15)【C++】
  • 原文地址:https://blog.csdn.net/yxt625520/article/details/133926634