컨테이너에 환경 변수 설정

이 포스트에서는 도커 컨테이너에서 환경 변수를 설정하는 방법을 배웁니다. 보안 조치로 암호, 환경 구성, API 자격 증명 등과 같은 항목이 저장소에서 확인되지 않는 경우가 많습니다. 이는 애플리케이션이 런타임 중에 이를 읽는 환경 변수에 설정됩니다.

샘플 애플리케이션 만들기



이를 위해 환경 변수를 읽고 브라우저에 표시하는 간단한 익스프레스 애플리케이션을 만들 것입니다.
  • npm init를 실행하여 json 패키지 생성

  • $ mkdir test-app
    $ cd test-app
    $ npm init --y
    $ npm install express --save
    $ touch app.js
    


  • app.js를 열고 다음을 입력하십시오.

  • // app.js
    var express = require("express");
    var app = express();
    
    app.use(express.json());
    app.use(express.urlencoded({ extended: false }));
    
    app.get("/", function (req, res, next) {
      res.send({ title: "Express", envVal: process.env.TESTVAL });
    });
    
    app.listen(3000, () => console.log("Running on http://localhost:3000"));
    


  • package.json에 시작 스크립트 추가

  • {
      "name": "express-with-env",
      "version": "0.0.0",
      "private": true,
      "scripts": {
        "start": "node app.js"
      },
      "dependencies": {
        "express": "~4.16.1"
      }
    }
    
    


  • 애플리케이션 실행

  • I'm using ubuntu v18 for development. If you're on windows, you may need to set the env variable in a slightly different way.



    $ TESTVAL=QWERTY npm start
    


    이제 브라우저에서 http://localhost:3000을 열면 다음과 같이 표시됩니다.

    {
    "title": "Express",
    "envVal": "QWERTY"
    }
    


    도커 이미지 생성



    packageJSON과 병렬로 Dockerfile을 생성해 보겠습니다.

    $ touch Dockerfile
    $ touch .dockerignore
    


    이제 Dockerfile을 열고 이 항목을 추가해 보겠습니다.

    FROM node:12-slim
    WORKDIR /app
    COPY ./package*.json ./
    RUN npm install
    COPY ./ ./
    EXPOSE 3000
    
    # Run the code
    CMD [ "npm", "start" ]
    


    Dockerfile에서 도커 이미지 빌드

    $ sudo docker build -t test-image .
    


    마지막으로 진입점으로 이미지 실행




    $ sudo docker run -e "TESTVAL=Docker with env variable" -p 3000:3000 -d test-image
    


    이제 브라우저에서 http://localhost:3000을 열면

    {
    "title": "Express",
    "envVal": "Docker with env variable"
    }
    


    동일한 이미지에서 다른 컨테이너를 회전시키십시오.

    $ sudo docker run -e "TESTVAL=Another Docker Container from the same image" -p 4000:3000 -d test-image
    


    이제 브라우저에서 http://localhost:4000을 열면

    {
    "title": "Express",
    "envVal": "Another Docker Container from the same image"
    }
    


    추신:



    기업에는 지원해야 할 여러 제품 및 비제품 환경이 있는 경우가 많습니다. 환경마다 구성이 다른 경우가 많지만 일단 배포되면 코드는 전략 빌드를 따라야 합니다. 이 튜토리얼을 통해 이를 효과적으로 수행할 수 있습니다.

    좋은 웹페이지 즐겨찾기