I’ve got an umbrella app, when I run deploy, I get
Preparing to run: `launcher eval DertGGWeb.Release.migrate` as heroku
2022/06/17 22:04:00 listening on [fdaa:0:6e5f:a7b:67:4c1f:fd90:2]:22 (DNS: [fdaa::3]:53)
eval: DertGGWeb.Release.migrate: command not found
I’ve already got the DertGGWeb.Release
module in the correct place.
fly.toml
# fly.toml file generated for broken-rain-627 on 2022-06-16T22:12:45+02:00
app = "broken-rain-627"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[build]
builder = "heroku/buildpacks:20"
buildpacks = ["https://cnb-shim.herokuapp.com/v1/hashnuke/elixir"]
[env]
PORT = "8080"
[experimental]
allowed_public_ports = []
auto_rollback = true
[[services]]
http_checks = []
internal_port = 8080
processes = ["app"]
protocol = "tcp"
script_checks = []
[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"
[deploy]
release_command = "eval DertGGWeb.Release.migrate"
runtime.exs
import Config
if config_env() == :prod do
database_url =
System.get_env("DATABASE_URL") ||
raise """
environment variable DATABASE_URL is missing.
For example: ecto://USER:PASS@HOST/DATABASE
"""
# maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: []
config :dert_gg, DertGG.Repo,
ssl: false,
url: database_url,
pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
socket_options: [:inet6]
secret_key_base =
System.get_env("SECRET_KEY_BASE") ||
raise """
environment variable SECRET_KEY_BASE is missing.
You can generate one by calling: mix phx.gen.secret
"""
config :dert_gg_web, DertGGWeb.Endpoint,
http: [
# Enable IPv6 and bind on all interfaces.
# Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access.
ip: {0, 0, 0, 0, 0, 0, 0, 0},
port: String.to_integer(System.get_env("PORT") || "4000")
],
secret_key_base: secret_key_base,
server: true
end