PHX Releases build failed with non-existing domain

Hello Devs,
Using this tutorial Deploying with Releases — Phoenix v1.5.9 _build/prod/rel/my_app/bin/my_app start failed with

11:50:50.507 [info] Access BgsiteOfficialWeb.Endpoint at http://example.com
11:50:50.507 [error] Postgrex.Protocol (#PID<0.3536.0>) failed to connect: ** (DBConnection.ConnectionError) tcp connect (HOST:5432): non-existing domain - :nxdomain

I tried to change the domain with my own and also localhost but nothing worked (in config/prod.exs).

Any thoughts?

Can you please show the content of config/prod.exs? What is the value of the DATABASE_URL environment variable?

#config/prod.exs

use Mix.Config

# For production, don't forget to configure the url host
# to something meaningful, Phoenix uses this information
# when generating URLs.
#
# Note we also include the path to a cache manifest
# containing the digested version of static files. This
# manifest is generated by the `mix phx.digest` task,
# which you should run after static files are built and
# before starting your production server.
config :bgsite_official, BgsiteOfficialWeb.Endpoint,
  url: [host: "example.com", port: 80],
  cache_static_manifest: "priv/static/cache_manifest.json"

# Do not print debug messages in production
config :logger, level: :info

# ## SSL Support
#
# To get SSL working, you will need to add the `https` key
# to the previous section and set your `:url` port to 443:
#
#     config :bgsite_official, BgsiteOfficialWeb.Endpoint,
#       ...
#       url: [host: "example.com", port: 443],
#       https: [
#         port: 443,
#         cipher_suite: :strong,
#         keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"),
#         certfile: System.get_env("SOME_APP_SSL_CERT_PATH"),
#         transport_options: [socket_opts: [:inet6]]
#       ]
#
# The `cipher_suite` is set to `:strong` to support only the
# latest and more secure SSL ciphers. This means old browsers
# and clients may not be supported. You can set it to
# `:compatible` for wider support.
#
# `:keyfile` and `:certfile` expect an absolute path to the key
# and cert in disk or a relative path inside priv, for example
# "priv/ssl/server.key". For all supported SSL configuration
# options, see https://hexdocs.pm/plug/Plug.SSL.html#configure/1
#
# We also recommend setting `force_ssl` in your endpoint, ensuring
# no data is ever sent via http, always redirecting to https:
#
#     config :bgsite_official, BgsiteOfficialWeb.Endpoint,
#       force_ssl: [hsts: true]
#
# Check `Plug.SSL` for all available options in `force_ssl`.

# Finally import the config/prod.secret.exs which loads secrets
# and configuration from environment variables.
import_config "releases.exs"
export DATABASE_URL=ecto://USER:PASS@HOST/database

This is an example value. You need to replace it with a proper one. For locally running PostgreSQL this would be something like postgresql://postgres:postgres@localhost:5432/my_app_dev.

4 Likes