目前专注小微企业运维外包

涛思数据库JAVA基础镜像

封装java基础镜像用于应用部署

国产化数据库:
    github:https://github.com/taosdata/TDengine
    website:http://tdengine.net/cn/documentation/administrator

需求:
    1.java应用运行在docker中 使用openjdk为基础镜像 但镜像需要安装taos客户端 否则jdbc无法连接
    2.解决中文乱码问题
    3.统一时区为中国

封装DockerFile 作为新的java基础镜像

FROM openjdk:8
MAINTAINER younglinuxer younglinuxer@gamil.com

RUN cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

RUN mkdir JAVA_HOME/jre/lib/fonts

ADD FZKTJW.TTFJAVA_HOME/jre/lib/fonts
COPY TDengine-client/ /TDengine-client

RUN cd /TDengine-client && bash install_client.sh

使用

1.将应用dockerfile基础镜像改为 FROM younglinuxer
/
java-td
2.注意涛思数据库默认使用域名连接需要更改容器的hosts或者指定能解析数据库地址的DNS服务器

app使用的Dockerfile

FROM younglinuxer/java-td

ENV APP_HOME /dfjx

WORKDIR APP_HOME

ADD start.sh /bin/start
RUN chmod +x /bin/start

ADD *.jarAPP_HOME/APP_NAME.jar
HEALTHCHECK --interval=5s --timeout=2s --retries=12 \
  CMD curl --silent --fail localhost:8080/health || exit 1

ENTRYPOINT ["/bin/bash","-c","start"]

docker内应用启动脚本

#!/bin/bash

function start(){
    cd {APP_HOME}
    newFileName=`ls -rtl *.jar | grep ^[^d] | tail -n 1 | awk '{print9}'`
    countFileName=`ls -l| grep ^[^d] |grep "^-"|wc -l`
    if [ countFileName -gt 1 ]; then
        `ls *.jar | grep -vnewFileName | xargs rm`
    fi
    begin_length=`expr index "newFileName" .`
    if [begin_length -gt 0 ]; then
        ext_name={newFileName:begin_length:{#newFileName}}
        if [ "ext_name" = 'jar' ]; then
            echo "Run Program newFileName java_opts =1"
            java 1 -Duser.timezone=UTC+8 -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US -jarAPP_HOME/newFileName
        fi
    fi
}

java_opts="-Xms512m -Xmx1024m"
if [ "JAVA_OPTS" ]; then
  java_opts=JAVA_OPTS
fi

start "java_opts"

exit 0

容器内连接taos数据库