前言
使用docker build命令来构建镜像时有一个--add-host
命令来实现添加域名解析,但是在17.04之后的docker版本中似乎不好使,笔者docker版本为18.09.2。最终解决方案如下:
构建jar镜像时配置域名解析(Linux)
1、Dockerfile文件如下(不启动jar)
# 基础jdk镜像
FROM jdk8:381
# jar包和dns配置脚本
COPY app.jar /app.jar
COPY dns.sh /dns.sh
EXPOSE 9090
# 赋予脚本权限
RUN chmod +x /dns.sh
CMD ["/dns.sh"]
ENTRYPOINT ["/bin/bash","-l","-c"]
2、在Dockerfile文件目录下创建dns.sh脚本(包含配置hosts文件和启动jar)
echo 'Starting dns ...'
echo "192.168.76.11 www.test1.com.cn" >> /etc/hosts
echo "192.168.76.12 www.test2.com.cn" >> /etc/hosts
java -jar /app.jar
3、构建镜像即可
docker build -t app:1.0 .