Jeśli używasz "doker-compose" jako metody do rozpędzania kontenera (-ów), faktycznie jest użyteczny sposób przekazania zmiennej środowiskowej zdefiniowanej na serwerze do kontenera Docker.
W pliku docker-compose.yml
, powiedzmy, że kręcą się podstawową Hapi-js pojemnik i kod wygląda następująco:
hapi_server:
container_name: hapi_server
image: node_image
expose:
- "3000"
Powiedzmy, że serwer lokalny, że projekt doker jest ma zmienną środowiskową o nazwie "NODE_DB_CONNECT", którą chcesz przekazać do swojego kontenera hapi-js, a chcesz, aby jego nowa nazwa brzmiała "HAPI_DB_CONNECT". Następnie w pliku docker-compose.yml
, należy przekazać zmienną środowiskową lokalną do pojemnika i zmienić go tak:
hapi_server:
container_name: hapi_server
image: node_image
environment:
- HAPI_DB_CONNECT=${NODE_DB_CONNECT}
expose:
- "3000"
Mam nadzieję, że to pomoże Ci uniknąć twarde kodowania bazy danych połączyć łańcuch w dowolnym pliku w pojemniku!
Czy istnieje łatwiejszy sposób to zrobić? Naprawdę irytujące jest to, że trzeba odtworzyć kontener z różnymi zmiennymi za każdym razem. Może przechowywać go w pliku? –
Przechowuję polecenia uruchamiania dokera w skryptach powłoki, (./start_staging.sh itd.), A następnie wykonuję je zdalnie za pomocą funkcji Ansible. – errata
Mam problem z uruchomieniem drugiej wersji; Ustawiłem PASSWORD = foo w środowisku, następnie przekaż --env PASSWORD, a tylko słowo "PASSWORD" pojawi się w config.json kontenera; każda inna zmienna środowiskowa ma klucz i wartość. Używam Docker 1.12.1. –