经过多次研究和尝试,我仍然不能解决这个问题。我使用Vapor Toolbox: 3.1.2
& Vapor Framework: 2.3.0
和Swift 4.0.3
(macos-high-sierra上的Xcode9.2)来构建一个简单的网站(没有数据库)。但在运行vapor heroku push
成功后,我尝试转到heroku dashboard
打开我的网站,但它不起作用。我尝试运行heroku logs
,得到的结果是crashed:
2017-12-26T09:04:10.000000+00:00 app[api]: Build succeeded
2017-12-26T09:10:00.192686+00:00 heroku[web.1]: Process exited with status 127
2017-12-26T09:10:00.207462+00:00 heroku[web.1]: State changed from starting to crashed
2017-12-26T09:10:00.210981+00:00 heroku[web.1]: State changed from crashed to starting
2017-12-26T09:10:03.369454+00:00 heroku[web.1]: Starting process with command `leeswift --env=production --port=19489`
2017-12-26T09:10:00.072884+00:00 app[web.1]: bash: leeswift: command not found
2017-12-26T09:10:05.460027+00:00 app[web.1]: bash: leeswift: command not found
2017-12-26T09:10:05.560609+00:00 heroku[web.1]: Process exited with status 127
2017-12-26T09:10:05.594754+00:00 heroku[web.1]: State changed from starting to crashed
2017-12-26T09:11:28.858638+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=leeswift.herokuapp.com request_id=0eab887e-dba0-488e-b3f6-899de07898d6 fwd="118.69.108.38" dyno= connect= service= status=503 bytes= protocol=https
请帮我修一下。
发布于 2017-12-29 18:46:25
bash: leeswift:找不到命令
你的heroku buildpack找不到为蒸汽应用程序生成的可执行文件。这可能是应用程序的名称/路径的问题。我还没有使用heroku,但Swift根据你的编译模式,在.build/release/<my-app>
或.build/debug/<my-app>
中生成它的可执行文件。
发布于 2018-01-15 17:26:02
我认为你在'Procfile‘文件中有一个错误。例如,这是我的:
web: Run --env=production --workdir=./ --config:servers.default.port=$PORT
发布于 2020-04-11 21:46:37
请按照以下步骤解决您的问题。
如何借助Vapor框架创建swift后台API。市场上还提供了另一个框架。但我们选择的是快速蒸气。
让我们开始吧。
在您的系统中安装蒸汽。
步骤1.运行下面的命令来安装蒸气
brew install vapor/tap/vapor-beta
检查蒸气是否已安装,是否在命令下运行。
vapor-beta --help
这些将是有用的蒸气命令。
仅当您在项目目录中时,才使用。你可以的
# Created vapor project
vapor new myProjectName
# Build vapor project
vapor build
# Run vapor project
vapor run
# You can configure Xcode. You should be inside created project directory.
vapor Xcode
当您在项目文件中进行了更改或为更新添加了新功能时,您可以使用以下命令。
vapor Xcode
您可以通过本地服务器测试API运行。出场的是“Hello World”
curl http://localhost:8080/hello
===========================================PostgreSQL Setup================================================
设置本地PrortgeSQL。运行下面的命令。
brew install postgresql
启动本地数据库服务器。在下面运行命令
pg_ctl -D /usr/local/var/postgres start
停止本地数据库服务器。运行下面的命令。
pg_ctl -D /usr/local/var/postgres stop
当您希望在启动时将PostgreSQL作为后台服务运行时,可以使用brew服务器。运行下面的命令。
brew services start postgresql
让我们用这个来启动Postgres。
psql -d postgres
通过运行以下命令创建数据库:
create databas databaseName
create databas ashi-app # Actual command
通过运行以下命令创建用户:-通过运行以下命令授予该用户所需的权限。
create user username
create user ashi-app-user # Actual command
grant all privileges on database databaseName to userName
# Actual command
grant all privileges on database ashi-app to ashi-app-user
===========================================PostgreSQL Setup================================================
Heroku================================================上的===========================================Deploy fresh应用程序
在没有数据库的Heroku上部署新的swift蒸汽应用程序。
假设您已经创建了没有数据库的Vapor项目。
步骤1.在cd MyApp上导航。
cd myApp
# Actual command
cd ashi-api
步骤2.在终端上的根项目directory.Run中创建快速版本文件。
echo 5.1.3 > .swift-version
步骤3.在终端的根项目directory.Run中创建Procfile文件。
echo web: Run serve --env production --hostname 0.0.0.0 --port $PORT > Procfile
步骤4.通过以下命令添加文件git并提交
git add .
git commit -m ‘App Setup’
步骤5.您应该使用下面的命令生成linux测试文件。
swift test --generate-linuxmain
步骤6.使用下面的命令在git中再次修改添加。
git add .
git commit -m ‘Tests setup’
步骤7.登录Heroku。需要在heroku上创建应用程序以进行部署。我们已经在heruko上登录了。通过运行下面的命令,我们可以登录。
heroku login
登录完成后,创建heroku应用程序。我们最喜欢的名字必须是app-appname。
heroku apps: create myAppName
heroku apps: create ashi-api # Actual command
步骤9.添加带有app的swift构建包。为了在这里编译,我们必须添加buildback。Heroku不支持内置swift包。
heroku buildpacks:set https://github.com/vapor-community/heroku-buildpack -a myproject
# Actual command
heroku buildpacks:set https://github.com/vapor-community/heroku-buildpack -a ashi-api
步骤10.在服务器上查找命令推送更改。
git push heroku master
现在您的应用程序和API将可用于测试…。
Heroku================================================上的===========================================Deploy fresh应用程序
包含已部署的应用程序和下一版本deployment==================================的======================Set数据库
步骤1.进行数据库配置。用postgreSQL替换sqlite数据库。因为Heroku不支持sqlite。
在App->configure.swift中替换。并在Todo.h TodoController.h中导入
import FluentPostgreSQL
// Configure a PostgreSQL database
let postgreSQLConfig: PostgreSQLDatabaseConfig
if let url = Environment.get("DATABASE_URL") {
postgreSQLConfig = PostgreSQLDatabaseConfig(url: url)!
} else {
postgreSQLConfig = PostgreSQLDatabaseConfig(hostname: "localhost", username: "app_test")
}
let postgreSQL = PostgreSQLDatabase(config: postgreSQLConfig)
// Register the configured PostreSQL database to the database config.
var databases = DatabasesConfig()
databases.add(database: postgreSQL, as: .psql)
services.register(databases)
步骤2.通过运行以下命令,使用home-brew安装heroku命令。
brew tap heroic/brew && brew install heroku
步骤3.我们可以通过运行命令在app中添加postgreSQL。
heroic addons:create heroic-postgresql:hobby-dev
步骤4.通过运行下面的命令在git中添加更新文件。
git add .
git commit -m ‘Added PostgreSQL file’
步骤5.在服务器上查找命令推送更改。
git push heroku master
第二个版本将可用于使用postgreSQL进行测试。
包含已部署的应用程序和下一版本deployment==================================的======================Set数据库
https://stackoverflow.com/questions/47976863
复制相似问题