本帖最后由 Alxen 于 2021-7-12 22:08 编辑 
Docker-compose 如何在容器启动的同时开启服务器
尝试写过entrypoint总是在启动sh脚本时显示无法找到相对应文件无法启动容器
写在command里 容器会执行完命令后直接关闭(tty:true)的状态下
求解这是Bungee的写法(未写启动脚本)
复制代码
Docker-compose 如何在容器启动的同时开启服务器
尝试写过entrypoint总是在启动sh脚本时显示无法找到相对应文件无法启动容器
写在command里 容器会执行完命令后直接关闭(tty:true)的状态下
求解这是Bungee的写法(未写启动脚本)
- Bungee:
 
-   tty: true
 
-   image: openjdk:8u292-jre-slim-buster
 
-   container_name: "Bungee"
 
-   stdin_open: true
 
-   working_dir: /root/Servers/#25565#BungeeCord/
 
-   command:
 
-   - bash
 
-   ports:
 
-   - "25565:25565"
 
-   volumes:
 
-   - /root/Servers/#25565#BungeeCord/:/root/Servers/#25565#BungeeCord/
 
-   external_links:
 
-   - mysql
 
-   - AuthMe_1
 
-   - Lobby_1
 
-   - SheepWars_1
 
- - SheepWars_2
就一般不都是一个容器运行一个服务吗
找不到文件可以试试在 sh 的最上面加一句
cd $(dirname $0)
找不到文件可以试试在 sh 的最上面加一句
cd $(dirname $0)
 本帖最后由 Alxen 于 2021-7-12 22:00 编辑 
运行cd指令docker会报错 我指定过woking-dir 直接运行sh 也不行
もぺもぺ 发表于 2021-7-12 21:56
就一般不都是一个容器运行一个服务吗
找不到文件可以试试在 sh 的最上面加一句
运行cd指令docker会报错 我指定过woking-dir 直接运行sh 也不行
Alxen 发表于 2021-7-12 21:58
直接sh 路径运行也不行
有什么显示吗,还有能让我看看,你是怎么写的吗。
もぺもぺ 发表于 2021-7-12 21:59
有什么显示吗,还有能让我看看,你是怎么写的吗。
Bungee:
tty: true
image: openjdk:8u292-jre-slim-buster
container_name: "Bungee"
stdin_open: true
working_dir: /root/Servers/#25565#BungeeCord/
command:
- bash
ports:
- "25565:25565"
volumes:
- /root/Servers/#25565#BungeeCord/:/root/Servers/#25565#BungeeCord/
external_links:
- mysql
- AuthMe_1
- Lobby_1
- SheepWars_1
- SheepWars_2
Alxen 发表于 2021-7-12 22:01
Bungee:
tty: true
image: openjdk:8u292-jre-slim-buster
这是目前没写启动脚本的
Alxen 发表于 2021-7-12 22:01
这是目前没写启动脚本的
你应该先写 Dockerfile,然后 build 指定 Dockerfile 所在的文件夹。或者 image 指定编译后的镜像
你这样相当于用 docker 装 java
もぺもぺ 发表于 2021-7-12 22:07
你应该先写 Dockerfile,然后 build 指定 Dockerfile 所在的文件夹。或者 image 指定编译后的镜像
你这 ...
Docker最大好处就是不要在宿主主机上安装什么东西直接用镜像,
希望有其他解决办法
Alxen 发表于 2021-7-12 22:10
Docker最大好处就是不要在宿主主机上安装什么东西直接用镜像,
希望有其他解决办法 ...
对,但是是要写 Dockerfile 去继承,而不是直接用 openjdk:8u292-jre-slim-buster
Dockerfile 学一下也要不了你多久的时间https://yeasy.gitbook.io/docker_practice/image/build
不想的话,那个提示无法找到文件的提示是具体内容是什么
もぺもぺ 发表于 2021-7-12 22:16
对,但是是要写 Dockerfile 去继承,而不是直接用 openjdk:8u292-jre-slim-buster
Dockerfile 学一下也要 ...
ERROR: for Bungee Cannot start service Bungee: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "sh /root/Servers/#25565#BungeeCord/start.sh": executable file not found in $PATH: unknown
ERROR: Encountered errors while bringing up the project.
Alxen 发表于 2021-7-12 22:24
ERROR: for Bungee Cannot start service Bungee: OCI runtime create failed: container_linux.go:380: ...
找不到的是 sh 命令,因为 openjdk:8u292-jre-slim-buster 的底包里没有。
去用 openjdk:8-jre-alpine3.9
もぺもぺ 发表于 2021-7-12 22:32
找不到的是 sh 命令,因为 openjdk:8u292-jre-slim-buster 的底包里没有。
去用 openjdk:8-jre-alpine3. ...
容器运行成功导致执行完命令后容器直接关闭
Alxen 发表于 2021-7-12 23:15
容器运行成功导致执行完命令后容器直接关闭
执行的命令是什么
もぺもぺ 发表于 2021-7-12 23:16
执行的命令是什么
没有按照你说的 sh找不到直接使用./start.sh 可运行 但是运行了直接容器关闭
Alxen 发表于 2021-7-12 23:18
没有按照你说的 sh找不到直接使用./start.sh 可运行 但是运行了直接容器关闭 ...
容器创建成功
sh里写
 
- while true
 
- do
 
-     java -Xms1024M -Xmx2048M -jar -XX:ParallelGCThreads=1 BungeeCord.jar
 
-     echo "CTRL+C 停止"
 
-     for i in 5 4 3 2 1
 
-     do
 
-         echo "$i..."
 
-         sleep 1
 
-     done
 
-     echo "Done!"
 
- done