Docker - zmienne środowiskowe wczytywane z pliku

Stronę tą wyświetlono już: 91 razy

Warto przybliżyć sposób przekazywania zmiennych sterujących za pomocą pliku konfiguracyjnego zamiast bezpośredniego umieszczania tychże zmiennych wewnątrz pliku yaml. Okazuje się bowiem, że zamiast:

Listing 1
  1. version: "3.8"
  2. services:
  3. mongodb:
  4. image: mongo
  5. environment:
  6. MONGO_INITDB_ROOT_USERNAME: AzureDiamond
  7. MONGO_INITDB_ROOT_PASSWORD: hunter2
  8. volumes:
  9. - mongo-wishes:/data/db
  10. nodewishes:
  11. build: ./
  12. ports:
  13. - 8889:8888
  14. environment:
  15. USER: AzureDiamond
  16. PASSWORD: hunter2
  17. volumes:
  18. - ./:/app
  19. depends_on:
  20. - mongodb
  21. volumes:
  22. mongo-wishes:

Można napisać:

Listing 2
  1. version: "3.8"
  2. services:
  3. mongodb:
  4. image: mongo
  5. env_file:
  6. - mongo.env
  7. volumes:
  8. - mongo-wishes:/data/db
  9. nodewishes:
  10. build: ./
  11. ports:
  12. - 8889:8888
  13. env_file:
  14. - node.env
  15. volumes:
  16. - ./:/app
  17. depends_on:
  18. - mongodb
  19. volumes:
  20. mongo-wishes:

W pliku modgo.env:

Listing 3
  1. MONGO_INITDB_ROOT_USERNAME=AzureDiamond
  2. MONGO_INITDB_ROOT_PASSWORD=hunter2

W pliku node.env:

Listing 4
  1. USER=AzureDiamond
  2. PASSWORD=hunter2

I teraz można uruchomić całość:

docker-compose up -d

Komentarze