我有以下 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-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