为什么我在 docker-compose.yml 中指定映射卷的文件夹中没有文件?

问题描述 投票:0回答:1

我有以下 Dockerfile

FROM openjdk:8-jre-alpine  
  
ENV VERSION="1.0.961"  
ENV URL="https://www.tekxit.lol/downloads/tekxit3.14/${VERSION}TekxitPiServer.zip"  
ENV MEM="4G"  
  
RUN apk add unzip  
RUN apk add wget  
  
RUN wget -O /tmp/tekkit.zip ${URL}  
RUN unzip /tmp/tekkit.zip -d /app/  
  
RUN mv /app/* /app/tekxit  
RUN chmod +x /app/tekxit/ServerLinux.sh  
  
EXPOSE 25565  
  
WORKDIR /app/tekxit  
RUN sed -i 's/Xmx4G/Xmx${MEM}/g' ServerLinux.sh  
RUN sed -i 's/Xms4G/Xms${MEM}/g' ServerLinux.sh  
  
CMD /app/tekxit/ServerLinux.sh  

并在一个文件夹中遵循 docker-compose.yml

version: '3'  
services:  
  tekxit:  
    build:  
      context: .  
    environment:  
      - VERSION:"1.0.961"  
      - MEM:"4G"  
    ports:  
      - 25565:25565  
    volumes:  
      - "./minecraft_data:/app/tekxit"  
    restart: unless-stopped  
  
volumes:  
  minecraft_data:  

但是当我这样做时

sudo docker compose up
,我收到错误
/bin/sh: /app/tekxit/ServerLinux.sh: not found
并且./minecraft_data

中绝对没有文件

当我不尝试使用 docker-compose.yml 将卷映射到文件夹内的文件夹时,容器启动成功

docker docker-compose minecraft
1个回答
0
投票

仅在命名卷的

docker-compose.yml
文件的根缩进上使用卷。对于绑定安装,不需要

删除这些行应该可以解决问题

volumes:  
  minecraft_data:

或者尝试使用完整路径目录

version: '3'  
services:  
  tekxit:  
    build:  
      context: .  
    environment:  
      - VERSION:"1.0.961"  
      - MEM:"4G"  
    ports:  
      - 25565:25565  
    volumes:  
      - "D:/<path>/minecraft_data:/app/tekxit"  
    restart: unless-stopped  

© www.soinside.com 2019 - 2024. All rights reserved.