在Windows上的DockerFile中挂载卷

zazmityj  于 2022-12-11  发布在  Docker
关注(0)|答案(1)|浏览(133)

我正在使用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
iq0todco

iq0todco1#

这里的问题是你两次挂载同一个文件夹./logs。Docker-compose卷挂载语法是- <your-host-path>:<your-container-path>。另外,在构建应用程序时最好使用相对路径。因此,将Docker-compose文件更改为(假设你想查看./target中相对于Dockerfile的文件:

myprofile-backend:
  extra_hosts:
    - remotehost
  container_name: samplecontainer-name
  image: sampleimagename
  links:
    - rabbitmq
    - db:redis
  expose:
    - "8080"
  ports:
    - "8082:8080"
  volumes:
    - ./logs/:/tmp/logs
    - ./target/:/app

相关问题