我正在使用Docker处理一个Springboot项目。我尝试挂载卷,以便可以访问本地目录中Springboot应用程序生成的文件。数据在Docker容器中生成,但在本地目录中找不到。
我读过很多主题,但似乎都没有帮助。
请,我仍然是新的码头,并将感谢建议,以协助。
我尝试直接在dockerfile中挂载卷,因为有一个dockercompose文件可以与其他文件一起运行服务。
停靠文件
FROM iron/java:1.8
EXPOSE 8080
ENV USER_NAME myprofile
ENV APP_HOME /home/$USER_NAME/app
#Test Script>>>>>>>>>>>>>>>>>>>>>>
#Modifiable
ENV SQL_SCRIPT $APP_HOME/SCRIPTS_TO_RUN
ENV SQL_OUTPUT_FILE $SQL_SCRIPT/data
ENV NO_OF_USERS 3
ENV RANGE_OF_SKILLS "1-4"
ENV HOST_PATH C:"/Users/user1/IdeaProjects/path/logs"
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
RUN adduser -S $USER_NAME
RUN mkdir $APP_HOME
RUN mkdir $SQL_SCRIPT
RUN chown $USER_NAME $SQL_SCRIPT
VOLUME $HOST_PATH: $SQL_SCRIPT
ADD myprofile-*.jar $APP_HOME/myprofile.jar
RUN chown $USER_NAME $APP_HOME/myprofile.jar
USER $USER_NAME
WORKDIR $APP_HOME
RUN sh -c 'touch myprofile.jar'
ENTRYPOINT ["sh", "-c","java -Djava.security.egd=file:/dev/./urandom -jar myprofile.jar -o $SQL_OUTPUT_FILE -n $NO_OF_USERS -r $RANGE_OF_SKILLS"]
坞站合成
myprofile-backend:
extra_hosts:
- remotehost
container_name: samplecontainer-name
image: sampleimagename
links:
- rabbitmq
- db:redis
expose:
- "8080"
ports:
- "8082:8080"
volumes:
- ./logs/:/tmp/logs
- ./logs/:/app
1条答案
按热度按时间iq0todco1#
这里的问题是你两次挂载同一个文件夹
./logs
。Docker-compose卷挂载语法是- <your-host-path>:<your-container-path>
。另外,在构建应用程序时最好使用相对路径。因此,将Docker-compose文件更改为(假设你想查看./target
中相对于Dockerfile的文件: