antikythera v0.2.0 Antikythera.Env View Source
Module to provide helpers to access environment variables defined by antikythera.
Environments and deployments
Antikythera instances and gears may run in the following two modes:
- As a mix project, when invoked by running
iex
ormix
command-line tool. - As an OTP release, which is generated by e.g.
antikythera_core.generate_release
task.
In general there are multiple deployments per antikythera instance. To distingish the target deployment from code, antikythera defines the following environment variables:
- At compile time (for metaprogramming):
ANTIKYTHERA_COMPILE_ENV
must be appropriately set; the value can be retrieved bycompile_env/0
. - At runtime:
ANTIKYTHERA_RUNTIME_ENV
must be appropriately set; the value can be retrieved byruntime_env/0
.
It is the responsibility of antikythera instance administrators to correctly set these environment variables
when compiling/running antikythera and gears.
Possible values returned by compile_env/0
and runtime_env/0
are:
- names of deployments given by
:deployments
application config :local
(running an OTP release at local machine for testing purpose):undefined
As an example, if you set :dev
and :prod
in :deployments
, then you get:
| | Mix.env() at compile-time | Mix.env() at runtime | compile_env(), runtime_env() |
|---------------------------+----------------------------------------+-------------------------+------------------------------|
| $ iex -S mix | :dev (toplevel), :prod (dependencies) | :dev | :undefined |
| $ mix test | :test (toplevel), :prod (dependencies) | :test | :undefined |
| $ mix antikythera_local.* | :prod | (:mix is not available) | :local |
| :dev deployment | :prod | (:mix is not available) | :dev |
| :prod deployment | :prod | (:mix is not available) | :prod |
You can use these values to distinguish the current context from your code.
Link to this section Summary
Functions
Timeout (in milli-seconds) for gear actions
TCP port to listen to for incoming web requests
Link to this section Types
Link to this section Functions
default_base_url(Antikythera.GearName.t() | Antikythera.GearNameStr.t(), t()) :: Antikythera.Url.t()
Timeout (in milli-seconds) for gear actions.
This can be configurable by specifying "GEAR_ACTION_TIMEOUT"
environment variable when compiling antikythera.
Defaults to 10000
.
TCP port to listen to for incoming web requests.
The port can be specified by "PORT"
runtime environment variable.
Defaults to 8081
during mix test
, and 8080
otherwise
(thus one can run both iex -S mix
and mix test
at the same time).