update at 2021-01-21 11:27:13 by ehlxr
This commit is contained in:
15
docker/Dockerfile
Normal file
15
docker/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
FROM openjdk:8-jre-alpine
|
||||
MAINTAINER ehlxr <ehlxr.me@gmail.com>
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
ARG SERVER_NAME
|
||||
ENV SERVER_NAME=${SERVER_NAME}
|
||||
|
||||
COPY start.sh /opt/start.sh
|
||||
COPY ${SERVER_NAME}*.jar /opt/
|
||||
|
||||
RUN chmod -R 755 /opt/
|
||||
|
||||
EXPOSE 16830 16831
|
||||
ENTRYPOINT ["/opt/start.sh"]
|
55
docker/build.sh
Executable file
55
docker/build.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "############## start ##############"
|
||||
BUILD_DATE=`date +%Y-%m-%d:%H:%M:%S`
|
||||
|
||||
CURR_DIR=`basename $PWD`
|
||||
if [[ ${CURR_DIR} != "docker" ]]; then
|
||||
echo "############## must exec in docker dir ##############"
|
||||
exit 2;
|
||||
fi
|
||||
|
||||
cd ../
|
||||
#SERVER_NAME=`awk '/<name>[^<]+<\/name>/{gsub(/<name>|<\/name>/,"",$1);print $1;exit;}' pom.xml`
|
||||
#SERVER_NAME=$(basename `pwd`)
|
||||
SERVER_NAME=${MODULE_PARMS}
|
||||
|
||||
SERVER_JAR=$PWD/${MODULE_PARMS}/target/${SERVER_NAME}*.jar
|
||||
#if [ ! -n "ls ${SERVER_JAR} >/dev/null 2>&1" ]; then
|
||||
if [[ "`echo ${SERVER_JAR}`" != "${SERVER_JAR}" ]]; then
|
||||
echo exist ${SERVER_JAR} skip maven build.
|
||||
else
|
||||
mvn clean install -DskipTests
|
||||
fi
|
||||
|
||||
cp ${SERVER_JAR} ./docker
|
||||
cd docker
|
||||
|
||||
if [[ ${DOCKER_IMAGE_TAG} ]];then
|
||||
image_tag=${DOCKER_IMAGE_TAG}
|
||||
else
|
||||
echo "############## DOCKER_IMAGE_TAG is null ! ##############"
|
||||
# image_tag=$(git symbolic-ref --short -q HEAD)
|
||||
image_tag=`date "+%Y%m%d_%H%M%S"`
|
||||
fi
|
||||
echo "############## image_tag is: ${image_tag} ##############"
|
||||
|
||||
base_url=docker.ehlxr.me
|
||||
docker_url=${base_url}/ehlxr/${SERVER_NAME}:${image_tag}
|
||||
|
||||
docker build --build-arg SERVER_NAME=${SERVER_NAME} -f ./Dockerfile -t ${docker_url} .
|
||||
# get user pwd from environment
|
||||
echo "${DOCKER_REGISTRY_PWD}" | docker login --username ${DOCKER_REGISTRY_USER} --password-stdin ${base_url}
|
||||
|
||||
docker push ${docker_url}
|
||||
|
||||
rm ${SERVER_NAME}*.jar
|
||||
echo "############## build & push finish: ${BUILD_DATE} ##############"
|
||||
|
||||
err=$?
|
||||
if [[ "$err" -ne "0" ]]; then
|
||||
echo "############## build error ! ##############"
|
||||
exit 1
|
||||
fi
|
33
docker/start.sh
Executable file
33
docker/start.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
#HOSTNAME=`hostname | cut -c1-18`
|
||||
LOGS_DIR="/data/logs"
|
||||
GC_LOGS_DIR="/data/gc"
|
||||
|
||||
if [[ ! -d ${LOGS_DIR} ]]; then
|
||||
mkdir -p ${LOGS_DIR}
|
||||
fi
|
||||
if [[ ! -d ${GC_LOGS_DIR} ]]; then
|
||||
mkdir -p ${GC_LOGS_DIR}
|
||||
fi
|
||||
|
||||
STDOUT_FILE=${LOGS_DIR}/${SERVER_NAME}.log
|
||||
CURRENT=`date "+%Y%m%d%H%M%S"`
|
||||
|
||||
#JAVA_OPTS=" -Duser.timezone=\"Asia/Shanghai\" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF8"
|
||||
|
||||
#JAVA_MEM_OPTS=" -server -Xmx${XMX:-512m} -Xms${XMS:-128m} -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC \
|
||||
# -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=${LargePageSize:-4m} \
|
||||
# -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \
|
||||
# -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:${GC_LOGS_DIR}/${SERVER_NAME}_${CURRENT}_gc.log \
|
||||
# -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${GC_LOGS_DIR}/${SERVER_NAME}_${CURRENT}.hprof"
|
||||
|
||||
JAVA_MEM_OPTS=" -server -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:${GC_LOGS_DIR}/${SERVER_NAME}_${CURRENT}_gc.log \
|
||||
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${GC_LOGS_DIR}/${SERVER_NAME}_${CURRENT}.hprof"
|
||||
|
||||
echo "Starting the ${SERVER_NAME} ...\c"
|
||||
chmod -R 755 ./${SERVER_NAME}*.jar
|
||||
#java -jar ${JAVA_OPTS} ${JAVA_MEM_OPTS} ./${SERVER_NAME}*.jar > ${STDOUT_FILE} 2>&1
|
||||
java -jar ${JAVA_MEM_OPTS} ./${SERVER_NAME}*.jar | tee -a ${STDOUT_FILE} 2>&1
|
Reference in New Issue
Block a user