[英]Docker startup script cannot be found
我正在使用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
運行
#!/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的任何想法? 謝謝
親愛的,我認為您的問題在於:
添加run.sh run.sh
您嘗試將run.sh從主機復制到docker映像中,請確保run.sh存在於您的項目目錄中,在您的情況下,該目錄應位於Dockerfile旁邊。
我在git repo中有一個正在運行的示例,如您的情況: https : //github.com/iabughosh/microservices,develop分支,它尚未合並到master。
您無需在docker-compose文件中指定dockerfile。 您需要刪除image: xyz
然后編寫build: .
image: xyz
(假設dockerfile與docker-compose.yml位於同一位置)
實際上,您的dockerfile甚至都不會構建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.