Docker撰写命令所在的位置?

时间:2017-12-26 09:52:25

标签: docker docker-compose

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

我总是得到同样的错误:

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"]无法正常工作

我必须把文件放在哪里?

最好的问候。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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”,然后搜索它