docker构建jar镜像时配置域名解析(亲测好使)

40 阅读1分钟

前言

使用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 .