我试图在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"]
不工作
我必须把文件放在哪里?
最好的祝福。
您应该为两个脚本指定完整路径,或者在Dockerfile中使用WORKDIR指令。必须为第一个设置可执行位。
我认为它搜索容器本身,它位于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”,然后搜索它