2015-05-25 3 views
5

Я не знаю почему, но я не могу понять, почему это происходит. Я могу создать и запустить изображение докеров на локальном уровне.Почему я получаю разрешение на отказ от docker/aws eb?

Последние события:

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": [] 
} 

Дополнительные журналы как вложения в: https://forums.aws.amazon.com/thread.jspa?threadID=181270

Любые помощь чрезвычайно ценится.


@nick-humrich предложение о попытке eb local run работал. Таким образом, использование eb deploy закончило работу.

Я ранее загружал веб-интерфейс.

Первоначально использование eb deploy давало мне ERROR: TypeError :: data must be a byte string, но я нашел это issue, который был устранен путем удаления pyopenssl.

Так что я не знаю, почему веб-интерфейс давал мне разрешение отклонять, возможно, что-то общее с zip-файлом?

Но в любом случае я могу развернуть сейчас спасибо.

+1

Вы пробовали запускать локально 'Е.Б. местного run'? –

+0

Я не знал, что вы можете это сделать, так что это круто, но да, он работает локально, используя «eb local run». Все еще получая разрешение, отказано при его загрузке, хотя :( – terrymunro

+0

Что такое bin/app? Я предполагаю, что его исполняемый файл но когда вы загружаете (как zip), то теряете биты разрешения. Какая система вы используете локально? Как ее запустить с программой, которая должна ее выполнить, например, ENTRYPOINT ["/ bin/bash", " bin/app "] в случае скрипта bash. – Samar

ответ

1

У меня была проблема с Docker на Elastic Beanstalk. Когда я указал CMD в Dockerfile в сценарий оболочки (/path/to/my_script.sh), развертывание EB потерпит неудачу с /path/to/my_script.sh: Permission denied.

Судя по всему, несмотря на то, я побежал RUN chmod +x /path/to/my_script.sh во время Докера строить, к тому времени, образ был запущен, разрешения был изменен. В конце концов, чтобы сделать его работу я остановился на:

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

Смежные вопросы