Sign inSign up

calmking/java8-building

By calmking

•Updated over 3 years ago

Image
0

342

calmking/java8-building repository overview

⁠Dockerfile

FROM calmking/alpine-glibc:3.7.3
ENV JAVA_VERSION_MAJOR=8 \
    JAVA_VERSION_MINOR=321 \
    LANG=en_US.UTF8 \
    JAVA_HOME=/usr/local/java \
    MAVEN_HOME=/usr/local/maven \
    MAVEN_VERSION=3.8.4 \
    glibc=glibc-2.27-r0.apk \
    APP_HOME=/opt/app
COPY package/ /opt/app/
WORKDIR /opt/app/
RUN /bin/sh -c ls && \
    echo http://mirrors.aliyun.com/alpine/v3.7/main > /etc/apk/repositories && \
    echo http://mirrors.aliyun.com/alpine/v3.7/community/ >> /etc/apk/repositories && \
    apk --update --no-cache add tar git openssh supervisor && \
    echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
#    apk add --allow-untrusted ${glibc} && \
    rm -rf /var/lib/apt/lists/* && \
    rm /var/cache/apk/* && \
    mkdir -p ${JAVA_HOME} && \
    ls /opt/app/ && \
    mkdir ${MAVEN_HOME} &&  \
    ls ${APP_HOME} && \
#    mv ${APP_HOME}/supervisord.conf /etc/supervisord.conf && \
    tar -xzf ${APP_HOME}/apache-maven-${MAVEN_VERSION}-bin.tar.gz -C ${MAVEN_HOME} && \
    mv ${MAVEN_HOME}/apache-maven-${MAVEN_VERSION}/* ${MAVEN_HOME} && \
    rm -rf ${MAVEN_HOME}/apache-maven-${MAVEN_VERSION} && \
    tar -zxf ${APP_HOME}/jdk-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz -C ${JAVA_HOME} && \
    mv ${JAVA_HOME}/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR}/* ${JAVA_HOME}/ && \
#    rm -rf ${JAVA_HOME}/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} && \
#    chmod a+x ${JAVA_HOME}/bin/* && \
    chmod a+x ${MAVEN_HOME}/bin/* && \
    chmod a+x ${APP_HOME}/*.sh && \
    ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone && \
    rm -rf ${APP_HOME}/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \
    echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf &&\
    echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config

ENV CLASSPATH=.:/usr/local/lib:/lib:/usr/local/lib/dt.jar:/usr/local/lib/tools.jar \
    JRE_HOME=/usr/local/jre \
    PATH=${PATH}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/maven/bin:/usr/bin/supervisord  \
    APP_JAR_TARGET=app/app-server/target/app-server-1.0-SNAPSHOT.jar \
    [email protected]:RenGuEJia/ren-gu-e-jia.git \
    GIT_USER_NAME=rain \
    [email protected] \
    LOCAL_BRANTCH=develop \
    REMOTE_BRANTCH=origin/develop \
    PROJECT_NAME=ren-gu-e-jia

VOLUME ["/root/.ssh/", "/root/.m2/repository" ,"/opt/app"]
ENTRYPOINT ["supervisord" ,"-c" ,"/opt/app/supervisord.conf"]

⁠supervisord.conf

[supervisord]
nodaemon=true
[program:appbuild]
directory = /opt/app ; 程序的启动目录
command = sh getProjectFromGit.sh ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = getProjectFromGit.log

⁠getProjectFromGit.sh

#!/bin/sh
git clone ${GIT_URL} -b ${REMOTE_BRANTCH}

cd ${PROJECT_NAME}
mvn clean
mvn install -DskipTests

Tag summary

Content type

Image

Digest

sha256:e698a1d3c…

Size

346.3 MB

Last updated

over 3 years ago

docker pull calmking/java8-building