2015-05-25 19 views
5

Non so perché ma non riesco a capire perché questo sta accadendo. Posso creare ed eseguire l'immagine della finestra mobile localmente.Perché ottengo un errore di autorizzazione negato su docker/aws eb?

Eventi recenti:

2015-05-25 12:57:07 UTC+1000 ERROR Update environment operation is complete, but with errors. For more information, see troubleshooting documentation. 
2015-05-25 12:57:07 UTC+1000 INFO New application version was deployed to running EC2 instances. 
2015-05-25 12:57:04 UTC+1000 INFO Command execution completed on all instances. Summary: [Successful: 0, Failed: 1]. 
2015-05-25 12:57:04 UTC+1000 ERROR [Instance: i-4775ec9b] Command failed on instance. Return code: 1 Output: (TRUNCATED)... run Docker container: vel="fatal" msg="Error response from daemon: Cannot start container 02c057b331bf3a3d912bf064f1dca3e00c95746b5748c3c4a28a5c6b452ff335: [8] System error: exec: \"bin/app\": permission denied" . Check snapshot logs for details. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/04run.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI. 
2015-05-25 12:57:03 UTC+1000 ERROR Failed to run Docker container: vel="fatal" msg="Error response from daemon: Cannot start container 02c057b331bf3a3d912bf064f1dca3e00c95746b5748c3c4a28a5c6b452ff335: [8] System error: exec: \"bin/app\": permission denied" . Check snapshot logs for details. 

Dockerfile:

FROM java:8u45-jre 
MAINTAINER Terence Munro <[email protected]> 
ADD ["opt", "/opt"] 
WORKDIR /opt/docker 
RUN ["chown", "-R", "daemon:daemon", "."] 
USER daemon 
ENTRYPOINT ["bin/app"] 
EXPOSE 9000 

Dockerrun.aws.json:

{ 
    "AWSEBDockerrunVersion": "1", 
    "Ports": [ 
    { 
     "ContainerPort": "9000" 
    } 
    ], 
    "Volumes": [] 
} 

registri aggiuntivi come allegato a: https://forums.aws.amazon.com/thread.jspa?threadID=181270

Qualsiasi l'aiuto è estremamente apprezzato.


@nick-humrich suggerimento di provare eb local run funzionato. Quindi usare eb deploy ha finito per funzionare.

mi era stato precedentemente caricamento tramite l'interfaccia web.

Inizialmente utilizzando eb deploy mi stava dando un ERROR: TypeError :: data must be a byte string ma ho trovato questo issue che è stato risolto disinstallando pyopenssl.

Quindi non so il motivo per cui l'interfaccia web mi stava dando il permesso negato, forse qualcosa a che fare con il file zip?

Ma comunque io sono in grado di distribuire oggi vi ringrazio.

+1

Hai provato il lancio a livello locale 'run' locali e ter? –

+0

Non sapevo si potesse fare, in modo che è cool ma sì funziona localmente tramite 'run' locale e ter .. ancora ottenere il permesso negato quando si invia, però :( – terrymunro

+0

Qual è bin/app? Presumo proprio un eseguibile ma quando si carica (come zip), il suo perdere i bit di autorizzazione. Qual è il sistema che si sta utilizzando a livello locale? che dire correre con il programma che dovrebbe eseguirlo ad es. entryPoint [ "/ bin/bash", " bin/app "] in caso di script bash. – Samar

risposta

1

Ho avuto un problema simile in esecuzione su Docker Elastic Beanstalk. Quando ho fatto CMD nel Dockerfile ad uno script di shell (/path/to/my_script.sh), la distribuzione EB fallirebbe con /path/to/my_script.sh: Permission denied.

A quanto pare, anche se avevo correre RUN chmod +x /path/to/my_script.sh durante la Docker costruire, per il momento l'immagine è stata eseguita, i permessi era stato cambiato Alla fine, per farlo funzionare ho optato per:

CMD ["/bin/bash","-c","chmod +x /path/to/my_script.sh && /path/to/my_script.sh"]

Problemi correlati