我正在尝试使用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;
}
答案 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