Skip to main content

Docker deploy spring boot

· One min read

容器部署 Spring Boot

Spring Boot image

  1. 创建 Dockerfile

    FROM openjdk:17.0.1-jdk-slim

    RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    RUN sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    RUN apt-get clean
    RUN apt-get update

    RUN set -eux; \
    apt-get update && apt-get install -y --no-install-recommends \
    # java.lang.UnsatisfiedLinkError: /usr/local/openjdk-11/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory
    # java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
    # https://github.com/docker-library/openjdk/pull/235#issuecomment-424466077
    fontconfig libfreetype6 \
    ; \
    rm -rf /var/lib/apt/lists/*
    VOLUME ["/tmp"]
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8","-jar"]
    CMD ["/program/app.jar"]
  2. 构建镜像

    docker build -f ./Dockerfile -t qiyi/openjdk:17.0.1-jdk-slim .

服务端应用

  1. 任务执行器

    dev

    docker run -d -t \
    -p 9999:9999 \
    --restart=unless-stopped \
    --name exector-dev \
    -v /program/xxl-exector-job-dev/lib/app.jar:/program/app.jar:ro \
    -v /program/xxl-exector-job-dev/log:/var/log/xxl-job \
    -e "SPRING_PROFILES_ACTIVE=dev" \
    qiyi/openjdk:17.0.1-jdk-slim

    bprod

    docker run -d -t \
    -p 9999:9999 \
    --restart=unless-stopped \
    --name xxl-job-exec \
    -v /program/xxl-job-exec/lib/app.jar:/program/app.jar:ro \
    -v /program/xxl-job-exec/log:/var/log/xxl-job \
    -e "SPRING_PROFILES_ACTIVE=bprod" \
    qiyi/openjdk:17.0.1-jdk-slim

    kprod

    docker run -d -t \
    -p 9999:9999 \
    --restart=unless-stopped \
    --name xxl-job-exec \
    -v /program/xxl-job-exec/lib/app.jar:/program/app.jar:ro \
    -v /program/xxl-job-exec/log:/var/log/xxl-job \
    -e "SPRING_PROFILES_ACTIVE=kprod" \
    qiyi/openjdk:17.0.1-jdk-slim
  1. admin

    dev

    docker run -d -t \
    -p 20004:9095 \
    --restart=unless-stopped \
    --name ladmin \
    -v /program/line2-admin/lib/app.jar:/program/app.jar:ro \
    -v /program/line2-admin/log:/var/log/line2/admin \
    -e "SPRING_PROFILES_ACTIVE=dev" \
    qiyi/openjdk:17.0.1-jdk-slim

    bprod

    docker run -d -t \
    -p 20004:9095 \
    --restart=unless-stopped \
    --name linev2-admin \
    -v /program/linev2-admin/lib/app.jar:/program/app.jar:ro \
    -v /program/linev2-admin/log:/var/log/line2/admin \
    -e "SPRING_PROFILES_ACTIVE=bprod" \
    qiyi/openjdk:17.0.1-jdk-slim

    kprod

    docker run -d -t \
    -p 20004:9095 \
    --restart=unless-stopped \
    --name linev2-admin \
    -v /program/linev2-admin/lib/app.jar:/program/app.jar:ro \
    -v /program/linev2-admin/log:/var/log/line2/admin \
    -e "SPRING_PROFILES_ACTIVE=kprod" \
    qiyi/openjdk:17.0.1-jdk-slim