iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
Kubernetes

從Docker到Kubernetes-新手入門筆記系列 第 15

Day15-Docker-compose 環境變數

  • 分享至 

  • xImage
  •  

敏感性資料,如資料庫帳號密碼、key等通常不會寫死在程式碼裡,獨立出來一個config檔,在Docker裡,可以利用environment來設定這些敏感資料,environment變數只有在build階段存在。

PostgreSQL image可以指定Password環境變數,

version: '3' 
services:   
  db:
    image: 'postgres:latest'
    environment:
      POSTGRES_PASSWORD: secret
  nest-app: # nestjs app name
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile.dev
    ports: 
      - '8080:3000'
    volumes:
      - /usr/nestapp/node_modules
      - /gitrepo/iron-nest/src:/usr/nestapp/src
      - /gitrepo/iron-nest/test:/usr/nestapp/test
    environment:
      - DBUSER=postgres
      - DBPW=secret 
      - DBHOST=db
      - DBPORT=5432
    depends_on:
      - db

而對於node.js應用程式而言,環境變數可以用process.env.變數名稱 存取到
在main.ts中

import { AppModule } from './app.module';
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
  Logger.log(`PostgreSQL Host: ${process.env.DBHOST}`);
  Logger.log(`PostgreSQL User: ${process.env.DBUSER}`);
  Logger.log(`PostgreSQL PW: ${process.env.DBPW}`);
  Logger.log(`PostgreSQL Port: ${process.env.DBPORT}`);
}
bootstrap();

docker-compose up --build

nodejs應用程式可以讀取docker-compose所設定的環境變數


上一篇
Day14-建立docker-compose development環境(下)
下一篇
Day16-安裝minikube for kubernetes playground
系列文
從Docker到Kubernetes-新手入門筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言