docker - 找不到Docker启动脚本

标签 docker docker-compose dockerfile docker-for-windows

我正在使用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/

相关文章:

docker - 如何让 docker-compose 构建一次镜像并重复使用它来运行容器?

docker - Docker-compose:exec用户进程导致 “no such file or directory”但文件存在

php - 在 Google Cloud 上使用 POST 表单部署 php 项目运行

docker - 运行命令时Dockerfile中的错误-> docker logs test-client

docker - docker compose 中 'image' 和 'build' 之间的区别

sql-server - Linux 上的 SQL Server > 批量导入错误

linux - 奇异并行查询

docker - 来自 Dockerfile 的 git@gitlab.com : Permission denied - fatal: Could not read from remote repository,

docker - 设置 Apache Airflow 时无法执行脚本 docker-compose

python - 在 docker 容器中运行 tensorflow 时出错