Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ Β«.envΒ».
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
ΡΠ°ΠΊ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ yml:
environment:
- VAR=${VAL_FROM_ENV}
env_file:
- etc/environment.yml
ΠΠΎΡΠ΅ΠΌΡ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ.yml?
DEMO_VAR='${VAL_FROM_ENV}'
Π― Π²ΠΈΠΆΡ env_file ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΡΡΠ΅Π΄Ρ Π² ΡΠ°ΠΉΠ»Π΅ , ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» .env ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Compose, Π° ΡΠ°ΠΉΠ» ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ/env_file β Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄ΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ env ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² .env.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΡΡΡΠΎ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² env.yml ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½, ΠΈ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. ΠΠ°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ vars, ΡΠ΄Π΅Π»Π°Π»ΠΎ Π±Ρ Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΠΉ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ (ΠΈ Π²Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ Π²ΡΠ΅ ΠΏΠΎΠ²ΡΡΠ΄Ρ). Π ΠΌΠ½Π΅ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠ΅ΡΠ΅ΠΏΠ΅ΡΠ°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π² ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ .
ΠΡΠ΅Π΄ΡΡΡΠΎΡΠΈΡ. Π― ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Mac Ρ ΠΏΠΎΠΌΠΎΡΡΡ docker-ΠΌΠ°ΡΠΈΠ½Ρ/ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ (ΡΠ°Π½Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ vagrant) ΠΈ ΠΈΡΠΊΠ°Π» ΡΠΏΠΎΡΠΎΠ± ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ (Π³Π΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ΅ΠΊΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΠΠ₯Π ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ/ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΆΠ΅ΡΡΠΊΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
Π― ΡΠ»Π΅Π΄ΠΈΠ» Π·Π° ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ # 3435 (ΠΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΠΎΠΉ ΠΈΠ»ΠΈ env_file), ΠΈ Ρ ΠΎΡΡ Ρ ΠΎΡΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΎΡΡ, Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ» compose yml ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ vars, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ (Π² ΡΠ°ΠΉΠ»Π°Ρ compose/docker? ), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π±Ρ ΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΡΠΌΠ΅ΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΊΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΠ»ΠΈ ΠΎΡΠΊΡΠ΄Π° ΡΠΈΡΠ°Π΅Ρ?).
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. :)
Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΊΠ΅ΡΠΎΠ²
docker-compose Π²Π΅ΡΡΠΈΠΈ 1.8.0, ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°
Π²Π΅ΡΡΠΈΡ Π΄ΠΎΠΊΠ΅Ρ-ΡΡ: 1.9.0
ΠΠ΅ΡΡΠΈΡ CPython: 2.7.10
ΠΠ΅ΡΡΠΈΡ OpenSSL: OpenSSL 0.9.8zh 14 ΡΠ½Π²Π°ΡΡ 2016 Π³.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π· ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΡΡΠ°ΡΠ΅Π²ΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π² Π½Π΅ΠΉ Π½Π΅ Π±ΡΠ»ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ, Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΊΡΡΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΡ Π² Π½Π΅ΠΉ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅ΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π· ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ.