Docker + Django + Angular + Heroku + Postgresql - 进程退出状态127,错误代码= H10 desc =“App崩溃”

时间:2017-07-09 23:01:21

标签: python django postgresql docker heroku

我正在尝试使用Angular 4前端,Django后端和postgresql数据库在Herer上部署我的Docker项目。此时我的文件如下所示。我注意到这是否正确完成?我使用heroku container:push web --app myproject推送它但它不起作用(Logs)。当我在没有Heroku的情况下运行docker-compose up时,一切似乎都正常运行。

我注意到在日志中有Process exited with status 127。我在这里找到了127 Return code from $?

Value 127 is returned by /bin/sh when the given command is not found within your PATH system variable and it is not a built-in shell command. In other words, the system doesn't understand your command, because it doesn't know where to find the binary you're trying to call.

此外,当我尝试不同的命令时,我经常会遇到/bin/sh: 1 not found 1.`heroku login` 2.`heroku container:login` 3.`heroku create nameofmyapp` 4.`heroku container:push web --app nameofmyapp` 5.`heroku open --app nameofmyapp` 我在this帖子中描述的错误。 也许这是问题的根源? 或者最终像this案例中的端口出现问题?

还有其他想法吗?在我看来,我正在尝试一切。我不知道出了什么问题。

如果你能告诉我我是否做得很好,我将不胜感激。

2017-07-08T13:19:48.882112+00:00 heroku[web.1]: Process exited with status 0
2017-07-08T13:20:40.336825+00:00 heroku[run.9745]: Awaiting client
2017-07-08T13:20:40.395900+00:00 heroku[run.9745]: Starting process with command `docker-compose up`
2017-07-08T13:20:40.542168+00:00 heroku[run.9745]: State changed from starting to up
2017-07-08T13:20:45.727667+00:00 heroku[run.9745]: State changed from up to complete
2017-07-08T13:20:45.715556+00:00 heroku[run.9745]: Process exited with status 127
2017-07-08T13:21:39.171330+00:00 heroku[run.8300]: Awaiting client
2017-07-08T13:21:39.198870+00:00 heroku[run.8300]: Starting process with command `docker-compose up`
2017-07-08T13:21:39.470489+00:00 heroku[run.8300]: State changed from starting to up
2017-07-08T13:21:43.381827+00:00 heroku[run.8300]: State changed from up to complete
2017-07-08T13:21:43.369201+00:00 heroku[run.8300]: Process exited with status 127
2017-07-08T13:25:26.780464+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=myapp.herokuapp.com request_id=cb876e32-ca19-467e-85a6-5babab50beab fwd="109.153.174.199" dyno= connect= service= status=503 bytes= protocol=https
Disconnected from log stream. There may be events happening that you do not see here! Attempting to reconnect...
2017-07-08T13:20:40.336825+00:00 heroku[run.9745]: Awaiting client
2017-07-08T13:20:40.395900+00:00 heroku[run.9745]: Starting process with command `docker-compose up`
2017-07-08T13:20:40.542168+00:00 heroku[run.9745]: State changed from starting to up
2017-07-08T13:20:45.727667+00:00 heroku[run.9745]: State changed from up to complete
2017-07-08T13:20:45.715556+00:00 heroku[run.9745]: Process exited with status 127
2017-07-08T13:21:39.171330+00:00 heroku[run.8300]: Awaiting client
2017-07-08T13:21:39.198870+00:00 heroku[run.8300]: Starting process with command `docker-compose up`
2017-07-08T13:21:39.470489+00:00 heroku[run.8300]: State changed from starting to up
2017-07-08T13:21:43.381827+00:00 heroku[run.8300]: State changed from up to complete
2017-07-08T13:21:43.369201+00:00 heroku[run.8300]: Process exited with status 127
2017-07-08T13:25:26.780464+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=myapp.herokuapp.com request_id=cb876e32-ca19-467e-85a6-5babab50beab fwd="109.153.174.199" dyno= connect= service= status=503 bytes= protocol=https

日志:

├── Backend
│   ├── AI
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-36.pyc
│   │   │   ├── settings.cpython-36.pyc
│   │   │   ├── urls.cpython-36.pyc
│   │   │   └── wsgi.cpython-36.pyc
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── manage.py
├── Dockerfile
├── init.sql
├── Frontend
│   └── angularProject
        ├── Dockerfile
│       └── all files in my angular project 
├── docker-compose.yml
└── requirements.txt

项目树:

# Create image based on the official Node 6 image from dockerhub
FROM node:6

# Create a directory where our app will be placed
RUN mkdir -p /usr/src/app

# Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app

# Copy dependency definitions
COPY package.json /usr/src/app

# Install dependecies
RUN npm install

# Get all the code needed to run the app
COPY . /usr/src/app

# Expose the port the app runs in
EXPOSE 4200

# Serve the app
CMD ["npm", "start"]

Frontend的Dockerfile:

FROM python:3.6.1
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
ADD . /code/

主目录的Dockerfile:

version: '3'

services:
  db:
    image: postgres
    environment:
      POSTGRES_USER: aso
      POSTGRES_PASSWORD: somepass
  django:
    build: .
    command: python3 MainDirectory/backend/myProject/manage.py runserver 0.0.0.0:8001
    volumes:
      - .:/code
    ports:
      - "8001:8001"
    depends_on:
      - db
  angular:
    build: MainDirectory/frontend
    ports:
      - "4200:4200"
    depends_on:
      - django

搬运工-compose.yml:

CREATE USER myUser;
CREATE DATABASE myProject;
GRANT ALL PRIVILEGES ON DATABASE myProject TO myUser;

init.sql:

#include <windows.h>

int main()
{
    int mouse_info[3];

    mouse_info[0] = 0;  // MouseThreshold1
    mouse_info[1] = 0;  // MouseThreshold2
    mouse_info[2] = 0;  // Set Pointer Precision

    // Set and update user settings. In effect immediately.
    SystemParametersInfo(SPI_SETMOUSE,
                         0,
                         mouse_info,
                         SPIF_UPDATEINIFILE);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

我想我正在经历同样的问题,也许您应该只使用docker-compose在本地运行您的应用程序,并使用postgres附加组件将其配置为在heroku上运行:https://devcenter.heroku.com/articles/heroku-postgresql。< / p>

但我不确定如何在此之后实际启动应用程序。我可以使用django命令进行迁移:python manage.py migrate,但无法使用heroku run python manage.py runserver在heroku上启动服务器,因为我上传了Docker Image。所以我不确定如何启动应用程序。也许附加组件可以帮助......

编辑1: 解决了django应用程序,检查我的问题: Docker + Django + Postgres Add-on + Heroku