Docker撰写命令在哪里寻找?

问题描述 投票:0回答:2

我试图在docker-compose文件中使用命令选项来覆盖dockerFile中的CMD选项。但它不起作用,我不知道码头工人在哪里......我试图把我的文件放到各处: - 在容器中(/ usr / bin /) - 用我的docker-compose - 在我的主机中(/ usr) /斌/)

我总是得到同样的错误:

Cannot start service app: oci runtime error: container_linux.go:247: starting container process caused "exec: \"wait-for-maria.sh\": executable file not found in $PATH"

你可以在我的docker-compose下面找到

  app:
    volumes:
        - ./code:/var/www/html/
    depends_on:
        - db
    command: ["wait-for-maria.sh","fpm_start.sh"]

我试过command: ["./wait-for-maria.sh","fpm_start.sh"]不工作

我必须把文件放在哪里?

最好的祝福。

docker docker-compose
2个回答
1
投票

您应该为两个脚本指定完整路径,或者在Dockerfile中使用WORKDIR指令。必须为第一个设置可执行位。


0
投票

我认为它搜索容器本身,它位于RAM中,只能通过docker访问。您可以在docker-compose.yml(dockerfile:/ path_to_your_dockerfile / MyDockerFile)中定义dockerfile指令文件,然后运行命令:“COPY your_relative_actual_path / wait-for-maria.sh destination_path_within_the_container_from_root / wait-for-maria.sh”进行复制将文件放入容器中

您可以通过以下命令命令它从dockerfile运行:RUN path_to_sh_file

当容器启动时,您应该能够在容器中找到它:在终端中键入:“docker exec -ti your_container_name bash”,然后搜索它

© www.soinside.com 2019 - 2024. All rights reserved.