我的Procfile应该如何?

我想部署在Heroku我的项目在Docker与Angular 4前端,Django的后端和postgresql数据库。 在这个时候我的文件看起来如下所示。 我收到错误:

2017-07-10T19:44:39.000000+00:00 app[api]: Build succeeded 2017-07-10T19:45:19.954230+00:00 heroku[web.1]: Starting process with command `gunicorn pri.wsgi` 2017-07-10T19:45:22.834045+00:00 app[web.1]: [2017-07-10 19:45:22 +0000] [4] [INFO] Starting gunicorn 19.7.1 2017-07-10T19:45:22.834597+00:00 app[web.1]: [2017-07-10 19:45:22 +0000] [4] [INFO] Listening at: http://0.0.0.0:53621 (4) 2017-07-10T19:45:22.834712+00:00 app[web.1]: [2017-07-10 19:45:22 +0000] [4] [INFO] Using worker: sync 2017-07-10T19:45:22.838348+00:00 app[web.1]: [2017-07-10 19:45:22 +0000] [8] [INFO] Booting worker with pid: 8 2017-07-10T19:45:22.842567+00:00 app[web.1]: [2017-07-10 19:45:22 +0000] [8] [ERROR] Exception in worker process 2017-07-10T19:45:22.842570+00:00 app[web.1]: Traceback (most recent call last): 2017-07-10T19:45:22.842571+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker 2017-07-10T19:45:22.842572+00:00 app[web.1]: worker.init_process() 2017-07-10T19:45:22.842573+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 126, in init_process 2017-07-10T19:45:22.842574+00:00 app[web.1]: self.load_wsgi() 2017-07-10T19:45:22.842574+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi 2017-07-10T19:45:22.842575+00:00 app[web.1]: self.wsgi = self.app.wsgi() 2017-07-10T19:45:22.842575+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi 2017-07-10T19:45:22.842576+00:00 app[web.1]: self.callable = self.load() 2017-07-10T19:45:22.842576+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 2017-07-10T19:45:22.842577+00:00 app[web.1]: return self.load_wsgiapp() 2017-07-10T19:45:22.842577+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 2017-07-10T19:45:22.842577+00:00 app[web.1]: return util.import_app(self.app_uri) 2017-07-10T19:45:22.842578+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 352, in import_app 2017-07-10T19:45:22.842578+00:00 app[web.1]: __import__(module) 2017-07-10T19:45:22.842582+00:00 app[web.1]: ModuleNotFoundError: No module named 'project' 

在我看来,这是我的Procfile的原因:

 web: gunicorn project.wsgi 

由于我在这种情况下的文件结构。 我的项目树中有相当类似的情况。 任何人都可以告诉我我的Procfile应该是什么样子?

项目树:

 DockerProject ├── Dockerfile ├── Procfile ├── init.sql ├── requirements.txt ├── docker-compose.yml └── PROJECT ├── frontend └── backend └── project ├── prices ├── manage.py └── project └── all project files 

前端的Dockerfile:

 # 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"] 

主目录的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/ 

泊坞窗,compose.yml:

 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 

init.sql:

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

尝试:

 web: sh -c 'cd PROJECT/backend/project && gunicorn project.wsgi --log-file -'