Docker:Dockerize在/ opt / my-service / db文件夹中需要mmdb文件的服务

我正在试图dockerize需要mmdb文件(maxmind数据库文件格式)在一个特定的位置/ opt / my-service / db

本地我能够运行该服务,如果我通过将所需的mmdb文件复制到“ / opt / my-service / db ”文件夹来设置我的系统。

我应该为docker工做些什么? 我试图通过在dockerfile中创build相同的文件位置(不工作)来复制文件:

FROM tomcat:8-jre8 EXPOSE 8080 COPY ./my-service/target/my-service-1.0-SNAPSHOT.war /usr/local/tomcat/webapps cmd mkdir -p /opt/my-service/db copy ./my-service/src/test/resources/* /opt/ipgeo/db/ CMD ["catalina.sh", "run"] 

这是应该如何做? 或者应该创build一个容器? 如果是的话,怎么样?

cmd mkdir将不会运行来构buildDockerfile。 所以,用这个replace你的Dockerfile:

 FROM tomcat:8-jre8 EXPOSE 8080 COPY ./my-service/target/my-service-1.0-SNAPSHOT.war /usr/local/tomcat/webapps RUN mkdir -p /opt/my-service/db COPY ./my-service/src/test/resources/* /opt/ipgeo/db/ CMD ["catalina.sh", "run"] 

而且,你确定在这个Dockerfile中/ opt / my-service / db和/ opt / ipgeo / db不应该是相同的string吗?

如果是这样,正确的Dockerfile应该是:

 FROM tomcat:8-jre8 EXPOSE 8080 COPY ./my-service/target/my-service-1.0-SNAPSHOT.war /usr/local/tomcat/webapps RUN mkdir -p /opt/my-service/db COPY ./my-service/src/test/resources/* /opt/my-server/db/ CMD ["catalina.sh", "run"]