Hi guys,
Im getting some issue deploying to DO
When I try to run this
mix edeliver build release
It shows this error
BUILDING RELEASE OF PROJECT APP ON BUILD HOST
-----> Authorizing hosts
-----> Ensuring hosts are ready to accept git pushes
-----> Pushing new commits with git to: user@ipaddress
-----> Resetting remote hosts to ad76a770fcda0ef2dd622ae3a344db3e3d617f70
-----> Cleaning generated files from last build
-----> Fetching / Updating dependencies
using mix to fetch and update deps
** (CompileError) config/prod.secret.exs:1: undefined function e/1
(elixir) lib/code.ex:232: Code.eval_string/3
(mix) lib/mix/config.ex:187: anonymous fn/2 in Mix.Config.__import__!/2
(elixir) lib/enum.ex:1940: Enum."-reduce/3-lists^foldl/2-0-"/3
Here’s my .deliver/config
APP="project"
BUILD_HOST="ipaddress"
BUILD_USER="user"
BUILD_AT="/home/user/app_build"
PRODUCTION_HOSTS="ipaddress"
PRODUCTION_USER="user"
DELIVER_TO="/home/user/app_release"
pre_erlang_get_and_update_deps() {
local _prod_secret_path="/home/user/app_config/prod.secret.exs"
if [ "$TARGET_MIX_ENV" = "prod" ]; then
__sync_remote "
ln -sfn '$_prod_secret_path' '$BUILD_AT/config/prod.secret.exs'
"
fi
}
I already check prod.secret.exs
is available in the server
Im following this tutorial https://www.digitalocean.com/community/tutorials/how-to-automate-elixir-phoenix-deployment-with-distillery-and-edeliver-on-ubuntu-16-04
Thanks guys
Hi azimlord,
According to the error message there is an error in your prod.secret.exs, on the line 1 apparently.
1 Like
Check your prod.secret.exs file to make sure there isn’t any typos in it.
config/prod.secret.exs:1: undefined function e/1
Sounds to me like a problem compiling the file not that it isn’t being found.
Hi mcostasilva & sanswork,
I dont think theres any issue with the prod.secret.exs
Here’s my prod.secret.exs
use Mix.Config
# In this file, we keep production configuration that
# you'll likely want to automate and keep away from
# your version control system.
#
# You should document the content of this
# file or create a script for recreating it, since it's
# kept out of version control and might be hard to recover
# or recreate for your teammates (or yourself later on).
config :project, ProjectWeb.Endpoint,
secret_key_base: "AnQL+w2yvjz12cxcjmC5lHF8cFiBHQ3Vf+cpSFcs6FfOaJBbgqA4byRcssYW5P3V"
# Configure your database
config :project, Project.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "project_prod",
pool_size: 15
In server
azim@ubuntu-s-1vcpu-1gb-sgp1-01:~$ ls app_build/config/
config.exs dev.exs prod.exs prod.secret.exs test.exs
Weird…
cat app_build/config/
on the server shows the content you posted?
Yup
azim@ubuntu-s-1vcpu-1gb-sgp1-01:~$ cat app_build/config/prod.secret.exs
e Mix.Config
# In this file, we keep production configuration that
# you'll likely want to automate and keep away from
# your version control system.
#
# You should document the content of this
# file or create a script for recreating it, since it's
# kept out of version control and might be hard to recover
# or recreate for your teammates (or yourself later on).
config :project, ProjectWeb.Endpoint,
secret_key_base: "AnQL+w2yvjz12cxcjmC5lHF8cFiBHQ3Vf+cpSFcs6FfOaJBbgqA4byRcssYW5P3V"
# Configure your database
config :project, Project.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "project_prod",
pool_size: 15
Anyway, I have a temporary fix for this. Move all prod.secret.exs
to prod.exs
and remove prod.secret.exs
from prod
You’re missing “us” at the start of that.
e Mix.Config
on the first line.
1 Like