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