Docker: команда вернула ненулевой код: 137 - PullRequest
0 голосов
/ 08 февраля 2020

Мой docker файл выглядит следующим образом:

#Use python 3.6 image
FROM python:3.6
ENV PYTHONUNBUFFERED 1

#install required packages
RUN apt-get update
RUN apt-get install libsasl2-dev libldap2-dev libssl-dev python3-dev psmisc -y

#install a pip package
#Note: This pip package has a completely configured django project in it
RUN pip install <pip-package>

#Run a script
#Note: Here appmanage.py is a file inside the pip installed location(site-packages), but it will be accessible directly without cd to the folder
RUN appmanage.py appconfig appadd.json

#The <pip-packge> installed comes with a built in django package, so running it with following CMD
#Note: Here manage.py is present inside the pip package folder but it is accesible directly
CMD ["manage.py","runserver","0.0.0.0:8000"]

Когда я запускаю:

sudo docker build -t test-app .

Шаги в Dockerfile до: RUN appmanage.py appconfig выполняются успешно, как и ожидалось, но после этого я получаю сообщение об ошибке:

The command '/bin/sh -c appmanage.py appconfig ' returned a non-zero code: 137

Когда я пытаюсь найти ошибку, я получаю предложения о том, что памяти недостаточно. Но я убедился, что системе (centos) достаточно памяти.

Дополнительная информация

Вывод командной строки при выполнении RUN appmanage.py appconfig:

Step 7/8 : RUN appmanage.py appconfig
 ---> Running in 23cffaacc81f

======================================================================================
configuring katana apps...
 Please do not quit (or) kill the server manually, wait until the server closes itself...!
======================================================================================
Performing system checks...

System check identified no issues (0 silenced).
February 08, 2020 - 12:01:45
Django version 2.1.2, using settings 'katana.wui.settings'
Starting development server at http://127.0.0.1:9999/
Quit the server with CONTROL-C.
9999/tcp:
    20Killed

1 Ответ

1 голос
/ 10 февраля 2020

Как описано, команда RUN appmanage.py appconfig appAdd.json выполнена успешно, как и ожидалось, и сообщила, что System check identified no issues (0 silenced)..

Более того, команда «настояла» на самоубийстве и возвращает код выхода 137. Минимальные изменения для этого для работы, чтобы обновить Dockerfile быть как

...
#Run a script
#Note: Here appmanage.py is a file inside the pip installed location(site-packages), but it will be accessible directly without cd to the folder
RUN appmanage.py appconfig appAdd.json || true
...

Это будет просто принудительно игнорировать код возврата выхода из предыдущей команды и нести на сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...