我正在使用Windows 10的Docker来启动eureka和配置服务器。我正在尝试添加启动脚本,以确保eureka在启动配置服务器之前已完全启动。以下文件存储在我的项目的根目录中:
Dockerfile-配置服务器
FROM openjdk:8-jdk-alpine
RUN apk update && apk upgrade && apk add netcat-openbsd && apk add curl
RUN mkdir -p /usr/local/configserver
ADD ./target/config-server-0.0.1-SNAPSHOT.jar /usr/local/configserver/
ADD run.sh run.sh
RUN chmod +x run.sh
CMD ./run.sh
run.sh
#!/bin/sh
echo "********************************************************"
echo "Waiting for the eureka server to start on port $EUREKASERVER_PORT"
echo "********************************************************"
while ! `nc -z eurekaserver $EUREKASERVER_PORT`; do sleep 3; done
echo ">>>>>>>>>>>> Eureka Server has started"
echo "********************************************************"
echo "Starting Configuration Server
echo "********************************************************"
java -jar /usr/local/configserver/config-server-0.0.1-SNAPSHOT.jar
使用以下docker-compose:
docker-compose.yml
version: '2.2'
services:
eurekaserver:
image: eureka-naming-server
ports:
- "8761:8761"
configserver:
image: config-server
ports:
- "10000:10000"
environment:
EUREKASERVER_PORT: 8761
EUREKASERVER_URI: "http://eurekaserver:8761/eureka/"
我得到以下输出:
C:\docker\prj> docker-compose -f docker-compose.yml up
Creating eureka-naming-server_configserver_1 ... done
Creating eureka-naming-server_eurekaserver_1 ... done
Attaching to eureka-naming-server_configserver_1, eureka-naming-server_eurekaserver_1
configserver_1 | /bin/sh: ./run.sh: not found
为什么找不到run.sh的任何想法?
谢谢
最佳答案
亲爱的,我认为您的问题在于:
ADD run.sh run.sh
您正在尝试将run.sh从主机复制到docker镜像,请确保run.sh存在于您的项目目录中,在您的情况下,该目录应位于Dockerfile旁边。
我在git repo中有一个像您的情况这样的运行示例:
https://github.com/iabughosh/microservices,开发分支,尚未合并到master。
关于docker - 找不到Docker启动脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51935958/