2017-12-26 3 views
0

Ich versuche, die Befehlsoption in einer docker-compose-Datei zu verwenden, um die CMD-Option in einer dockerFile zu überschreiben. Aber es funktioniert nicht, ich weiß nicht, wo der Hafenarbeiter sucht ... Ich habe versucht, meine Datei überall: - im Container (/ usr/bin /) - mit meinem Docker-komponieren - in meinem Host (/ usr/bin /)Docker komponieren Befehl, wo es sucht?

ich immer die gleiche Fehlermeldung erhalten:

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" 

Sie unter meinem finden docker-komponieren

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

versuchte ich command: ["./wait-for-maria.sh","fpm_start.sh"] nicht funktioniert entweder

Wo muss ich meine Datei ablegen?

Mit freundlichen Grüßen.

Antwort

1

Sie sollten den vollständigen Pfad für beide Skripte angeben, oder verwenden Sie die WORKDIR d Richtlinie in Ihrer Dockerfile. Das ausführbare Bit muss für das erste gesetzt werden.

0

Ich denke, es sucht den Container selbst, der im RAM befindet und nur über Docker zugänglich ist. Sie können die Datei dockerfile im docker-compose.yml (dockerfile:/path_to_your_dockerfile/MyDockerFile) definieren und dort einen Befehl ausführen: "COPY your_relative_actual_path/wait-for-maria.sh destination_path_within_the_container_from_root/wait-for-maria.sh" kopieren die Datei in den Behälter

Sie es durch und dann von der dockerfile Befehl ausgeführt werden soll kann: RUN path_to_sh_file

Wenn der Behälter beginnt, sollten Sie es in dem Behälter zu finden, indem Sie der Lage sein: „docker exec - ti your_container_name bash "im Terminal und danach suchen