一、Dockerfile

FROM 192.168.1.2/common/openjdk:1.8
MAINTAINER 运维@小兵
LABEL description="java"
ENV JAVA_OPT="-Xmx640m -Xms640m -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M -Dfile.encoding=utf-8" \
    SERVICE_PORT=1100 VERSION=

EXPOSE ${SERVICE_PORT}
WORKDIR /opt
COPY app.jar .
COPY run.sh .

RUN chmod +x run.sh && mkdir -p config
CMD ["bash", "run.sh"]

二、run.sh

便于调试的场景

#!/bin/bash

WORKDIR=$(cd `dirname $0`;pwd)
cd ${WORKDIR}
java -Xbootclasspath/a:./config/ $JAVA_OPT -jar app.jar --server.port=${SERVICE_PORT} > /dev/stdout 2>&1 &
tail -f /dev/stdout

生产环境

参考文章:
K8S容器应用优雅关闭-修复5003 Error

使用exec的方式能够实现K8S容器应用优雅关闭

系统调用exec是以新的进程去代替原来的进程,但进程的PID保持不变。

#!/bin/bash

WORKDIR=$(cd `dirname $0`;pwd)
cd ${WORKDIR}
exec java -Xbootclasspath/a:./config/ $JAVA_OPT -jar app.jar --server.port=${SERVICE_PORT}
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐