Pas si vite – I succeeded in creating an app, but not in spawning the service from my docker image.
Can you help me set the right Github action?
I have the image properly built in my docker hub (and it is accessed through my docker secrets) .
It seems that although I specify a type : docker in the koyeb.yaml file, the koyeb services create expects some github information.
I get the following errors in the Github action run
koyeb apps create duckdb-spawn --config ./koyeb.yaml --token *** --debug
koyeb services create duckdb-spawn/api --config ./koyeb.yaml --token *** --debug
shell: /usr/bin/bash -e {0}
env:
DOCKER_HUB_USERNAME: ***
DOCKER_IMAGE_NAME: duckdb-spawn
KOYEB_APP_NAME: duckdb-spawn
time="2024-11-21T17:22:41Z" level=debug msg="Using config file: ./koyeb.yaml"
time="2024-11-21T17:22:42Z" level=debug msg="Using host: app.koyeb.com using https"
time="2024-11-21T17:22:42Z" level=debug msg="Unable to find setter SetHelp on *koyeb.CreateApp\n"
time="2024-11-21T17:22:42Z" level=debug msg="========== HTTP request ==========\nPOST /v1/apps HTTP/1.1\r\nHost: app.koyeb.com\r\nUser-Agent: koyeb-cli/5.3.0\r\nContent-Length: 24\r\nAccept: */*\r\nAuthorization: <HIDDEN, add --debug-full to show the token>\nContent-Type: application/json; charset=utf-8\r\nAccept-Encoding: gzip\r\n\r\n{\"name\":\"duckdb-spawn\"}\n\n========== end of request ==========\n"
time="2024-11-21T17:22:42Z" level=debug msg="========== HTTP response ==========\nHTTP/2.0 200 OK\r\nCache-Control: no-cache, no-store\r\nContent-Type: application/json\r\nDate: Thu, 21 Nov 2024 17:22:42 GMT\r\nPragma: no-cache\r\nStrict-Transport-Security: max-age=15724800; includeSubDomains\r\nVary: Accept-Encoding\r\nX-Ratelimit-Limit: 30, 30;w=60\r\nX-Ratelimit-Remaining: 29\r\nX-Ratelimit-Reset: 18\r\n\r\n{\"app\":{\"id\":\"2635617b-9ed4-4491-a10e-3bcd18be5129\",\"name\":\"duckdb-spawn\",\"organization_id\":\"907de27c-acaa-4573-bf2a-3a7d34ce0baa\",\"created_at\":\"2024-11-21T17:22:42.595491Z\",\"updated_at\":\"2024-11-21T17:22:42.595491Z\",\"started_at\":null,\"succeeded_at\":null,\"paused_at\":null,\"resumed_at\":null,\"terminated_at\":null,\"status\":\"STARTING\",\"messages\":[\"App starting.\"],\"version\":\"0\",\"domains\":[{\"id\":\"6e23c8fb-9327-4e7e-ba6a-0b7524c0a58d\",\"organization_id\":\"907de27c-acaa-4573-bf2a-3a7d34ce0baa\",\"name\":\"duckdb-spawn-dealexmachina-b837970c.koyeb.app\",\"created_
ID NAME STATUS DOMAINS CREATED AT
2635617b duckdb-spawn STARTING ["duckdb-spawn-dealexmachina-b837970c.koyeb.app"] 21 Nov 24 17:22 UTC
time="2024-11-21T17:22:42Z" level=debug msg="Using config file: ./koyeb.yaml"
time="2024-11-21T17:22:42Z" level=debug msg="Using host: app.koyeb.com using https"
time="2024-11-21T17:22:42Z" level=debug msg="========== HTTP request ==========\nGET /v1/apps?limit=100&offset=0 HTTP/1.1\r\nHost: app.koyeb.com\r\nUser-Agent: koyeb-cli/5.3.0\r\nAccept: */*\r\nAuthorization: <HIDDEN, add --debug-full to show the token>\nAccept-Encoding: gzip\r\n\r\n\n========== end of request ==========\n"
time="2024-11-21T17:22:43Z" level=debug msg="========== HTTP response ==========\nHTTP/2.0 200 OK\r\nCache-Control: no-cache, no-store\r\nContent-Type: application/json\r\nDate: Thu, 21 Nov 2024 17:22:43 GMT\r\nPragma: no-cache\r\nStrict-Transport-Security: max-age=15724800; includeSubDomains\r\nVary: Accept-Encoding\r\nX-Ratelimit-Limit: 200, 200;w=60\r\nX-Ratelimit-Remaining: 199\r\nX-Ratelimit-Reset: 17\r\n\r\n{\"apps\":[{\"id\":\"bd805dc9-47f7-4e9e-acce-88d0ad6499c6\",\"name\":\"koyeb-db-preview-app\",\"organization_id\":\"907de27c-acaa-4573-bf2a-3a7d34ce0baa\",\"updated_at\":\"2024-05-07T07:00:59.767248Z\",\"created_at\":\"2024-05-07T07:00:30.667617Z\",\"domains\":[{\"id\":\"ae95a7e5-b488-4020-90dc-e695efb9f5c6\",\"organization_id\":\"907de27c-acaa-4573-bf2a-3a7d34ce0baa\",\"name\":\"koyeb-db-preview-app-dealexmachina-592b4f11.koyeb.app\",\"created_at\":\"2024-05-07T07:00:30.682003Z\",\"updated_at\":\"2024-05-07T07:00:30.682003Z\",\"status\":\"ACTIVE\",\"type\":\"AUTOASSIGNED\",\"app_id\":\"bd805dc9-47f7
time="2024-11-21T17:22:43Z" level=debug msg="========== HTTP request ==========\nGET /v1/apps/2635617b-9ed4-4491-a10e-3bcd18be5129 HTTP/1.1\r\nHost: app.koyeb.com\r\nUser-Agent: koyeb-cli/5.3.0\r\nAccept: */*\r\nAuthorization: <HIDDEN, add --debug-full to show the token>\nAccept-Encoding: gzip\r\n\r\n\n========== end of request ==========\n"
time="2024-11-21T17:22:43Z" level=debug msg="========== HTTP response ==========\nHTTP/2.0 200 OK\r\nCache-Control: no-cache, no-store\r\nContent-Type: application/json\r\nDate: Thu, 21 Nov 2024 17:22:43 GMT\r\nPragma: no-cache\r\nStrict-Transport-Security: max-age=15724800; includeSubDomains\r\nVary: Accept-Encoding\r\nX-Ratelimit-Limit: 200, 200;w=60\r\nX-Ratelimit-Remaining: 199\r\nX-Ratelimit-Reset: 17\r\n\r\n{\"app\":{\"id\":\"2635617b-9ed4-4491-a10e-3bcd18be5129\",\"name\":\"duckdb-spawn\",\"organization_id\":\"907de27c-acaa-4573-bf2a-3a7d34ce0baa\",\"created_at\":\"2024-11-21T17:22:42.595491Z\",\"updated_at\":\"2024-11-21T17:22:42.595491Z\",\"started_at\":null,\"succeeded_at\":null,\"paused_at\":null,\"resumed_at\":null,\"terminated_at\":null,\"status\":\"STARTING\",\"messages\":[\"App starting.\"],\"version\":\"0\",\"domains\":[{\"id\":\"6e23c8fb-9327-4e7e-ba6a-0b7524c0a58d\",\"organization_id\":\"907de27c-acaa-4573-bf2a-3a7d34ce0baa\",\"name\":\"duckdb-spawn-dealexmachina-b837970c.koyeb.app\",\"creat
time="2024-11-21T17:22:43Z" level=debug msg="========== HTTP request ==========\nPOST /v1/services HTTP/1.1\r\nHost: app.koyeb.com\r\nUser-Agent: koyeb-cli/5.3.0\r\nContent-Length: 371\r\nAccept: */*\r\nAuthorization: <HIDDEN, add --debug-full to show the token>\nContent-Type: application/json; charset=utf-8\r\nAccept-Encoding: gzip\r\n\r\n{\"app_id\":\"2635617b-9ed4-4491-a10e-3bcd18be5129\",\"definition\":{\"git\":{\"branch\":\"main\"},\"instance_types\":[{\"scopes\":[\"region:was\"],\"type\":\"nano\"}],\"name\":\"api\",\"ports\":[{\"port\":8000,\"protocol\":\"http\"}],\"regions\":[\"was\"],\"routes\":[{\"path\":\"/\",\"port\":8000}],\"scalings\":[{\"max\":1,\"min\":1,\"scopes\":[\"region:was\"],\"targets\":[]}],\"skip_cache\":false,\"strategy\":{},\"type\":\"WEB\"}}\n\n========== end of request ==========\n"
time="2024-11-21T17:22:43Z" level=debug msg="========== HTTP response ==========\nHTTP/2.0 400 Bad Request\r\nContent-Length: 150\r\nCache-Control: no-cache, no-store\r\nContent-Type: application/json\r\nDate: Thu, 21 Nov 2024 17:22:43 GMT\r\nPragma: no-cache\r\nStrict-Transport-Security: max-age=15724800; includeSubDomains\r\nX-Ratelimit-Limit: 30, 30;w=60\r\nX-Ratelimit-Remaining: 29\r\nX-Ratelimit-Reset: 17\r\n\r\n{\"status\":400,\"code\":\"invalid_argument\",\"message\":\"Validation error\",\"fields\":[{\"field\":\"definition.git.repository\",\"description\":\"cannot be blank\"}]}\n========== end of response ==========\n"
❌ Error while creating the service: the Koyeb API returned an error 400: Validation error
🔎 Additional details
Field definition.git.repository: cannot be blank
🏥 How to solve the issue?
Fix the request, and try again
🕦 The original error was:
400 Bad Request
Error: Process completed with exit code 1.
On a variation note
I will try to use Pulumi in the action yaml to deploy to Koyeb.