如何在docker-compose.yml里指定Spring boot应用镜像的配置文件挂载路径
本人用Spring boot开发了一个简单web应用。用docker-compose指定编译。编译成功。但是如何能通过docker-compose.yml里的配置,指定在容器里的应用的配置文件,在镜像外配置呢?例如 application.properties文件,在镜像外,如何通过dokcer-compose.yml里指定(volumes)在镜像外挂载路径呢?我在下面docker-compse.yml的设置不好使
docker-compse.yml
version: '3'
services:
elasticsearch:
build: elasticsearch
ports:
- 9200:9200
expose:
- 9300
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
networks:
- "internal"
volumes:
- esdata:/usr/share/elasticsearch/data
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ulimits:
nofile:
soft: 65536
hard: 65536
kibana:
image: docker.elastic.co/kibana/kibana:5.6.4
networks:
- "internal"
ports:
- 5601:5601
elasticsearch-head:
image: mobz/elasticsearch-head:5
networks:
- "internal"
ports:
- 9100:9100
app:
build: helloWorld
ports:
- 9090:9090
expose:
- 9090
networks:
- "internal"
volumes:
- ./helloWorld/config/hello.yml:/app/hello.yml (不好使)
volumes:
esdata:
driver: local
networks:
internal:
driver: "bridge"
------------------------------------------------------------------------
DockerFile
FROM java:8
VOLUME /tmp
RUN mkdir /app
ADD HelloWorld-0.0.1-SNAPSHOT.jar /app/app.jar
ADD runboot.sh /app/
RUN bash -c 'touch /app/app.jar'
WORKDIR /app
RUN chmod a+x runboot.sh
EXPOSE 9090
CMD /app/runboot.sh
--------------------------------------------------------------------------------
runboot.sh
sleep 10
java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar