我正在尝试使用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"]
无法正常工作
我必须把文件放在哪里?
最好的问候。
答案 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”,然后搜索它