AashishChakravarty

AashishChakravarty

Hello

I want to set config_env from .env file. I am trying to use config env variable from Dockerfile but i get wrong value. I have set MIX_ENV=prod in .env but i get :dev on config_env() other thing i also try System.get_env("MIX_ENV") where i get correct value.

.env file

export MIX_ENV=prod

docker-compose.yml

version: "3"

services:
  web:
    env_file:
      - .env
    build:
      context: "."
      args:
      - MIX_ENV=$MIX_ENV
    ports:
      - 4000:4000

Dockerfile


# Configure required environment
ARG MIX_ENV
ENV MIX_ENV=${MIX_ENV}

Showing Posts 1 to 7

jarlah

jarlah

I might be wrong here. But inside .env file there should be no export. There should only be key=value lines

AashishChakravarty

AashishChakravarty OP

I have also tried without export but it is the same.

jarlah

jarlah

I might also guess that you cannot reference env vars in compose file like you did. Ref article above

jarlah

jarlah

Never seen env_file used in compose before :man_shrugging:

I hope someone else can give some (better?) tips :slight_smile: peace out

leanersoftware

leanersoftware

Since you’ve mentioned Dockerfile, I suppose you’re using a release. In that case, config_env/0 returns environment which was active at the moment when mix release run.

kigila

kigila

Suffer no more.
Here is how I would write the env variable in the docker compose file:

docker-compose.yml
------------------------------------------------------------------------------------------------------
xx some stuff goes here for the images and commands( the usual stuffs)
xx
xx

services:
  web:
    env_file:
        - .env
    build:
        context: "."
        args:
         - MIX_ENV=$MIX_ENV
    ports:
         - 4000:4000
   environment:
         MIX_ENV="what_ever_string_your_app_expect"
         ANOTHER_ENV_VAR="what_ever_string_your_app_expect"
         ANOTHER_ONE="DJKHALED"
         FOR_EXAMPLE_USERNAME="kigila"

I have been doing it this way since I learn docker compose.

muelthe

muelthe

I’m not at a computer so I can’t test this and therefore I might be wrong, but it looks to me like you’re defining your MIX_ENV twice, once from your .env file and then by setting args in your compose file.

You only need the .env file (assuming it’s using key=value pairs and the file is in the right place).

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
psy-q
I’m trying to set up Emacs with elixir-ls via lsp-mode and credo via Flycheck. This should mostly be preconfigured as Flycheck picks up c...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews