Configuration issue using distillery, conform and edeliver

I am trying to deploy a phoenix application using distillery, conform and edeliver (disillery v. 1.4.0, conform 2.3.3, edeliver 1.4.2). The general process works, but something is overriding my sys.conf.

For the server I am using a digital oceans droplet with Ubuntu 16.04 with an unprivileged user.
In the users .profile I have the following exports:

export RELEASE_CONFIG_DIR=/home/web/config
export PORT=4000

And I have placed my config in the specified directory.

After deploying and starting the app the final sys.config contains the wrong values.
Before starting the application, conform generates the sys.conf. I checked this by tailing the sys.conf in ~/deploy/var and greped for a specific value that I expect to be overriden (important_value in my case). The file changes several times and in between the writes I can see the expected value.

I suspect it has anything to do with edeliver because when I ssh into the server and restart the server using the start script from distillery (~/deploy/releases/<version>/deploy.sh restart) everything works as expected.

I have build an example project to illustrate the issue: https://github.com/kbredemeier/deploy

Steps for reproduction:

Place the deploy.conf from the project root on the server in the specified RELEASE_CONFIG_DIR.
Notice the important_value. It defaults to “foo” and should be overriden with “Very important prod only info”.

mix edeliver build release --verbose
mix edeliver deploy release to production --verbose
mix edeliver start start production

Then ssh to the server:

tail -n +0 -f deploy/var/sys.conf | grep important_value

And restart the server using edeliver from another terminal window:

mix edeliver restart production

Any advice would be appreciated :slight_smile:

@kbredemeier you still face this problem or you found a solution?

I updated edeliver and conform and now everything works as expected. I cannot say what caused the issue in the first place :confused:

2 Likes