docker compose 및 VScode 개발 환경 사용 - 섹션 2

docker compose 파일을 설정한 곳에서 계속합니다. 이 부분에서 환경에 연결하여 개발을 진행할 것입니다.
docker compose 기반의 환경을 방금 배치했는데 코드가 없고 볼륨이 하나밖에 없다는 것을 기억하십시오.
선결 조건:
  • VS 컴퓨터에 설치된 코드
  • VS 코드ms-vscode-remote.remote-containers
  • 에 설치된 원격 컨테이너 확장
  • 지트

  • 1단계: 컨테이너에 VS 코드로 연결
    대부분의 힘든 일을 다 끝냈다.원격 용기 확장을 사용하여 웹api 용기에 연결합니다.이렇게 하려면 F1부터 시작하여 Attach to Running Container를 입력합니다.이 옵션을 선택하면 실행 중인 용기 목록을 볼 수 있습니다.이름에 webapi 중 하나를 선택합니다.내 설정에는 다음과 같은 것이 있다. my-dev-env-webapi-1약간의 설치 및 준비 후에 VS 코드가 시작됩니다.폴더/usr/src/app를 엽니다.이것은 우리가 설치한 webapi-code 볼륨의 위치다.현재 컨테이너 내에서 작업 중입니다.
    현재, VS 코드에서 터미널을 시작할 때, 터미널은 이미 용기에서 실행됩니다.힌트는 알려줄 거예요.
    터미널에서 다음 명령을 실행합니다.
    cd /usr/src/app
    git clone https://github.com/navneetkarnani/nodejs-db-test
    cd nodejs-db-test
    npm install
    
    이것은 내가 상기 데이터베이스에 연결하기 위해 작성한 코드를 서명할 것입니다. 만약 서명할 수 없다면 실패할 것입니다.테스트하려면 다음 명령을 실행합니다.
    npm start
    
    환경 변수인 MONGO DB가 정의되지 않은 실패를 보게 됩니다.

    환경 업데이트
    우리는 우리의 응용 프로그램이 생산 환경에서 이 점을 볼 수 있다는 것을 안다. 이것이 바로 응용 프로그램이 사용할 수 없으면 실패하는 이유이다.따라서 우리는 우리의 운행을 갱신할 때 이러한 기능을 가지게 하고 가능한 한 생산 환경에 접근하도록 한다.
    우리는 창문을 닫을 수 있다.그리고 부두 일꾼에게 돌아가자.암린my-dev-env.
    웹api의 서비스 부분에서 응용 프로그램이 원하는 환경 변수를 추가합니다.전체 웹api 섹션은 다음과 같습니다.
      webapi:
        image: node:lts
        environment:
          - MONGO_DB=mongodb://mongo:27017/test
        volumes:
          - webapi-code:/usr/src/app
          - webapi-root:/root
        command: ["/bin/bash", "-c", "--", "while true; do sleep 86400; done"]
    
    우리가 추가한 추가 environment 부분에 주의하십시오.MONGO_DB 포트mongo에 있는 27017 호스트를 가리킵니다.이름mongo은 데이터베이스에 있는 docker compose 파일에서 사용하는 서비스의 이름으로 해석됩니다.만약 네가 다른 이름을 가지고 있다면 반드시 같은 이름으로 바꾸어야 한다.Docker는 내부에서 DNS 검색을 수행하므로 응용 프로그램에서 IP 주소를 알 필요가 없습니다.
    호스트 (docker가 실행하는 기계) 에서 이 문제를 해결하려고 하면 해결할 수 없습니다.이 데이터베이스에 연결할 수 없습니다. 용기 내부에서 외부 세계를 위한 포트를 열지 않았기 때문입니다.모든 것이 안전하다.

    구성 테스트
    그런 다음 docker-compose up -d 명령을 반환하고 실행합니다.
    콘솔은 다음과 같이 표시되어야 합니다.
    Recreating my-dev-env_webapi_1 ... done
    my-dev-env_mongo_1 is up-to-date
    
    이전과 같이 '실행 중인 용기에 추가' 동작을 사용하여 용기에 다시 추가합니다.VS 코드 윈도우의 왼쪽 아래에 있는 녹색 작은 버튼을 바로 가기로 사용할 수도 있습니다.
    VS 코드에서 터미널을 시작하고 다음을 수행합니다.
    cd /usr/src/app/nodejs-db-test
    npm start
    
    너는 반드시 보아야 한다.
    > [email protected] start /usr/src/app/nodejs-db-test
    > node ./bin/www
    
    Connected to database
    

    여러 개의 인코딩 용기?정말 선진적이다!!
    그래서 여러 용기에서 인코딩을 하려면 쉽게 확장할 수 있다.볼륨 마운트가 고유/적절한지 확인합니다.예를 들어, NodeJ에서 실행되는 auth-server 라는 서비스를 추가하고 싶습니다.webapi 섹션만 복제하고 적절하게 변경하면 됩니다.
    VS 코드에 있어서 당신은 작은 부분의 절차를 기억해야 합니다.왜?기본적으로 원격 컨테이너 확장은 사용된 이미지에 따라 VS 코드 설정을 유지합니다.그리고 만약 여러 용기가 같은 이미지를 가지고 있다면, 어떤 일이 일어났는지 알 수 없을 뿐만 아니라, 사물이 서로 덮어쓰는 것만 계속 볼 수 있을 것이다.
    문서를 대량으로 검색한 후에 원격 용기에서 같은 devcontainer 파일을 만들었지만 자동으로 만들어졌고 이미지 이름으로 연결되었습니다.
    문서가 여기 있어서 명확하지 않다.이거 봐요. Named Containers
    다음은 운영체제에 따라 결과가 달라질 수 있도록 제 절차입니다.MacOS에 있기 때문에 전역 설정은 ~/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers 아래에 있습니다.용기에 연결할 때, 설정은 imageConfigs 디렉터리에서 만들어집니다.모든 dev 용기에 같은 (노드: lts) 를 사용하지만, 서명/단점 등에 사용되는 디렉터리가 다르기 때문에, 용기 이름을 파일 이름으로 복사해야 합니다.나는 가용성 개선을 얻기 위해 신청서 Issue on Github 를 제출했다.
    그러니까 돌아와.다음은 노트북에서 실행하는 단계입니다.
    cd ~/Library/Application\ Support/Code/User/globalStorage/ms-vscode-remote.remote-containers
    cd nameConfig
    cp ../imageConfigs/node%3alts.json my-dev-env_webapi_1.json
    

    요컨대
    이 두 문장에서, 우리는 로컬 저장 코드가 필요 없이 하나의 용기에서 작업할 수 있도록 docker compose 파일을 만들었다.
    용기와 관련 기술이 성숙됨에 따라 새로운 용례가 낡은 용례를 대체할 것이다. 이것은 VNC를 기반으로 하는 환경을 운행하는 것과 서버와 클라이언트에서 부하를 분담하는 것 사이의 커다란 혼합이다.그 밖에 개발 환경이 생산 환경에 더욱 가까워질 수 있다는 추가적인 장점도 있다.
    이는 원격 docker 호스트에서 개발하는 등 흥미로운 작업 흐름을 실현할 수 있으며, 데이터 센터나 디지털 오션Referral Link에서 응용 프로그램의 메모리 수요가 개발자 노트북의 사용 가능한 메모리 수요보다 클 수 있다.
    본문은 최초로 발표되었다. https://blog.mandraketech.in/dev-env-using-docker-compose-and-vscode-part-2

    좋은 웹페이지 즐겨찾기