docker Entrypoint, auf dem das Bash-Skript ausgeführt wird, erhält "Berechtigung verweigert"

Ich versuche, meine node.js-App anzudocken. Wenn der Container gebaut ist, möchte ich, dass er ein @ ausfühgit clone und starten Sie dann den Knotenserver. Deshalb habe ich diese Operationen in ein .sh-Skript geschrieben. Führen Sie das Skript als einzelnen Befehl in ENTRYPOINT aus:

FROM ubuntu:14.04

RUN apt-get update && apt-get install -y build-essential libssl-dev gcc curl npm git

#install gcc 4.9
RUN apt-get install -y software-properties-common python-software-properties
RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test
RUN apt-get update
RUN apt-get install -y libstdc++-4.9-dev

#install newst nodejs
RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
RUN apt-get install -y nodejs

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

ADD package.json /usr/src/app/
RUN npm install

ADD docker-entrypoint.sh /usr/src/app/

EXPOSE 8080

ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"] 

Meine docker-entrypoint.sh sieht so aus:

git clone git@<repo>.git
git add remote upstream git@<upstream_repo>.git

/usr/bin/node server.js

Nach dem Erstellen dieses Bildes und Ausführen von:

docker run --env NODE_ENV=development -p 8080:8080 -t -i <image>

Ich erhalte

docker: Error response from daemon: oci runtime error: exec: "/usr/src/app/docker-entrypoint.sh": permission denied.

I Shell in den Container und die Erlaubnis von docker-entrypoint.sh ist:

-rw-r--r-- 1 root root 292 Aug 10 18:41 docker-entrypoint.sh

drei Fragen:

Hat mein Bash-Skript eine falsche Syntax?

Wie ändere ich die Berechtigung einer Bash-Datei, bevor ich sie einem Bild hinzufüge?

Was ist der beste Weg, um mehrere Git-Befehle in Entrypoint auszuführen, ohne ein Bash-Skript zu verwenden?

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage