Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

lgvv98

[Vapor] Vapor + heroku ๋ณธ๋ฌธ

apple/๐Ÿ”ฌ Vapor

[Vapor] Vapor + heroku

๐Ÿฅ• ์บ๋Ÿฟ๋งจ 2022. 9. 14. 14:43

Vapor + heroku

 

 

์ง์ ‘ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์ฃผ๋„ํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ Vapor๋ฅผ ํ•™์Šตํ•˜๊ณ  heroku๋ฅผ ํ†ตํ•ด ๋ฐฐํฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์ „๋ฌดํ•ด์„œ ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ , ์ดํ•ดํ•˜๊ณ  ๋งŒ๋“œ๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ ค์„œ ๋‹ค์Œ๋ฒˆ์— ๋” ์†์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ๋กํ•ด ๋‘๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐœ๋ฐœํ™˜๊ฒฝ

 - Xcode 13.4.1

 

1. Vapor ์„ค์น˜ํ•˜๊ธฐ

ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ

 

brew install vapor

2. Vapor ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

ํ„ฐ๋ฏธ๋„์— ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ.

// 1. ํ„ฐ๋ฏธ๋„์— vapor ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
vapor new { ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ } // ex. vapor new vaportest
// 2. y, 1, y ์ˆœ์„œ๋กœ ์ž…๋ ฅ 

// 3. ์ƒ์„ฑ๋œ ํŒŒ์ผ ๋‚ด๋ถ€๋กœ ์ด๋™
cd { ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ } 

// 4. vapor Xcode ์—ด๊ธฐ
vapor xcode

// 5. ์—‘์Šค์ฝ”๋“œ ์—ฐ ํ›„ ๋นŒ๋“œ ํ›„ ์‹คํ–‰
// 6. ์‹คํ–‰์ด ๋œ ํ›„ ํฌ๋กฌ ์ฐฝ์— localhost:8080

6๋ฒˆ ๊ณผ์ • ์ดํ›„, ๋ธŒ๋ผ์šฐ์ €์— ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์„ฑ๊ณต

 

3. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋Œ€์‹œ๋ณด๋“œ!

 

๋Œ€์‹œ๋ณด๋“œ์—์„œ Reource - Add-ons์„น์…˜์—์„œ postgres ์„ ํƒ ํ›„ Heroku Postgres๋ฅผ ์„ ํƒํ•˜๊ณ  Hobby Dev - Free ํ”Œ๋žœ์„ ์„ ํƒํ•˜๊ณ  ์™„๋ฃŒํ•˜๋ฉด ๋œ๋‹ค.

 

๋‹ค์‹œ ๋กœ์ปฌ๋กœ ๋Œ์•„์™€์„œ ํ„ฐ๋ฏธ๋„์—

 

4. Heroku CLI ์„ค์น˜

brew install heroku/brew/heroku

5. heroku login

heroku login

์ •์ƒ์ ์œผ๋กœ ๋กœ๊ทธ์ธ ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด,

heroku auth:whoami

6. git

๋Œ€์‹œ๋ณด๋“œ์— ์„ค์ •ํ•œ ์•ฑ ์ด๋ฆ„์„ ๋„ฃ์–ด์ค€๋‹ค.

์—ฌ๊ธฐ์„œ git์ด๋ผ๊ณ  ํ•˜๋ฉด์€ heroku๊ฐ€ git์„ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฑฐ์ง€, ๋‚ด๊ฐ€ ๊นƒํ—™์— git์„ ๊ตณ์ด ์•ˆ์˜ฌ๋ ค๋„ ๋ผ.

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ heroku์šฉ ๊นƒ๊ณผ ์ฝ”๋“œ๋ฅผ ์œ„ํ•œ ๋‚˜์˜ git์ด ๋”ฐ๋กœ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

heroku git:remote { ๋Œ€์‹œ๋ณด๋“œ์— ์ง€์ •ํ•œ heroku ์•ฑ ์ด๋ฆ„ }

7. ๋นŒ๋“œํŒฉ ์„ค์ •

heroku buildpacks:set vapor/vapor

8. .swift-version ์ƒ์„ฑ ๋ฐ Profile ์ƒ์„ฑ

echo "5.2.4" > .swift-version

echo "web: Run serve --env production" \
  "--hostname 0.0.0.0 --port \$PORT" > Procfile

9. PostgreSQL ์„ค์ •

์•ฑ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค.

heroku config

 

๋งŒ์•ฝ ์„ค์ •์ด ์ •์ƒ์ ์œผ๋กœ ๋˜์—ˆ๋‹ค๋ฉด, ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ

=== { ๋Œ€์‹œ๋ณด๋“œ์— ๋“ฑ๋กํ•œ ์•ฑ ์ด๋ฆ„ } Config VarsDATABASE_URL: postgres:// { ... }

์œ„ ์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚œ๋‹ค.

๋งŒ์•ฝ ์ œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด 3๋ฒˆ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค.

 

10. configure.swift ํŒŒ์ผ์— ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

import Fluent
import FluentPostgresDriver
import Leaf
import Vapor

// configures your application
public func configure(_ app: Application) throws {
    //     uncomment to serve files from /Public folder
    app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))
    
    if let databaseURL = Environment.get("DATABASE_URL"), var postgresConfig = PostgresConfiguration(url: databaseURL) {
        postgresConfig.tlsConfiguration = .forClient(certificateVerification: .none)
        app.databases.use(.postgres(
            configuration: postgresConfig
        ), as: .psql)
    } else {
        // ...
    }
    
    app.databases.use(.postgres(
        hostname: Environment.get("DATABASE_HOST") ?? "localhost",
        port: Environment.get("DATABASE_PORT").flatMap(Int.init(_:)) ?? PostgresConfiguration.ianaPortNumber,
        username: Environment.get("DATABASE_USERNAME") ?? "vapor_username",
        password: Environment.get("DATABASE_PASSWORD") ?? "vapor_password",
        database: Environment.get("DATABASE_NAME") ?? "vapor_database"
    ), as: .psql)
    
    app.migrations.add(CreateTodo())
    
    app.views.use(.leaf)
    
    
    
    // register routes
    try routes(app)
}

์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐํฌ!

heroku๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ master ๋ธŒ๋žœ์น˜์— ๋ฐฐํฌ 

git push heroku master

์ด ๊ณผ์ •์—์„œ ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์ผ ๊ฑธ๋ฆผ

 

์ดํ›„ ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋ฉด

git add * 
git commit -m "์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€"
git push heroku master

์ปค๋ฐ‹ํ•˜๊ณ  ํ‘ธ์‹œํ•˜๋ฉด ๋œ๋‹ค.

 

 

๋‹ค์Œ์— ํฌ์ŠคํŠธ ๋งจ์œผ๋กœ

https://{๋Œ€์‹œ๋ณด๋“œ ์•ฑ ์ด๋ฆ„}.herokuapp.com/...

 

 

 

hello vapor!

 

 

 

๐Ÿšจ ์ด์Šˆ

heroku ps:scale web=1 ์ž…๋ ฅ์‹œ, Couldn't find that process type, Heroku๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ ์‚ฌ์šฉ

์•„๋ž˜์ฒ˜๋Ÿผ ํ•ด๋„ ๋˜์—ˆ์œผ๋‚˜, ์ €์˜ ๊ฒฝ์šฐ์—๋Š” heroku ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ๋Œ€๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์•„์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

heroku config๋ฅผ ํ–ˆ์„ ๋•Œ ์•„๋ฌด๊ฒƒ๋„ ๋‚˜ํƒ€

 

https://www.appsloveworld.com/django/100/149/couldnt-find-that-process-type-web-error-on-heroku

 

[Solved]-Couldn't find that process type (web) error on heroku-django

Coding example for the question Couldn't find that process type (web) error on heroku-django

www.appsloveworld.com

 

 

(์ฐธ๊ณ )

https://yagom.net/courses/start-vapor/lessons/vapor-app-%eb%b0%b0%ed%8f%ac%ed%95%98%ea%b8%b0/

 

Vapor App ๋ฐฐํฌํ•˜๊ธฐ - ์•ผ๊ณฐ๋‹ท๋„ท

Server-Side Swift with Vapor Vapor App ๋ฐฐํฌํ•˜๊ธฐ ์•ฑ์„ ๊ตฌํ˜„ํ•˜๊ธฐ์— ์•ž์„œ ๋ฐฐํฌ๋ฅผ ๋จผ์ € ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ Vapor […]

yagom.net

https://hururuek-chapchap.tistory.com/128?category=933474 

 

Vapor ) Vapor์™€ Leaf๋กœ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž 2๋ถ€

์•ˆ๋…•ํ•˜์„ธ์š” ํ›„๋ฅด๋ฅต์งญ์งญ ์ž…๋‹ˆ๋‹ค. 2020/10/12 - [Vapor] - Vapor ) Vapor์™€ Leaf๋กœ ์›น ์‚ฌ์ดํŠธ ๋งŒ๋“ค์–ด๋ณด์ž 1๋ถ€ Vapor ) Vapor์™€ Leaf๋กœ ์›น ์‚ฌ์ดํŠธ ๋งŒ๋“ค์–ด๋ณด์ž 1๋ถ€ ์•ˆ๋…•ํ•˜์„ธ์š” ํ›„๋ฅด๋ฅต์งญ์งญ ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Vapor์— ๋Œ€..

hururuek-chapchap.tistory.com

 

Comments