Docker Compose 및 VS 코드로 환경 개발
5064 단어 vscodedevelopersdocker
다중 서비스 (웹api,db) 를 설정하는 절차를 안내하고 VS 코드를 사용하여 개발할 것입니다.이것은 기술적으로 알 수 없는 것이기 때문에 자바/파이톤/NodeJS/Ruby/PHP,MongoDB/PostgreSQL/MySQL/MariaDB든 당신이 가장 좋아하는 창고든 모두 일을 할 수 있어야 합니다.
가정:
- 이 환경에서 VS 코드를 사용하여 개발
mkdir my-dev-env
cd my-dev-env
git init -q
Docker Compose 이니시에이터
docker compose 파일을 정의하는 것부터 시작합니다.이 연습에 대해 나는 우리가 실행할 프로그램이 최신 LTS에서 실행되는 NodeJS 프로그램이라고 가정할 것이다.
docker-compose.yaml
라는 파일을 만듭니다.volumes:
webapi-code: {}
webapi-root: {}
services:
webapi:
image: node:lts
volumes:
- webapi-code:/usr/src/app
- webapi-root:/root
command: ["/bin/bash", "-c", "--", "while true; do sleep 86400; done"]
이 디렉토리에서 다음 명령을 실행합니다.docker-compose up -d
다음과 같은 메시지가 표시되어야 합니다.Creating my-dev-env_webapi_1 ... done
여기서 my-dev-env
는 파일이 있는 디렉토리의 이름으로 바뀝니다.정리를 수행하려면 같은 디렉토리에서
docker-compose down
를 실행합니다.구성 이해
이 파일의 각 항목을 훑어봅시다.먼저 최상위 섹션입니다.
volumes
docker compose에 따르면 우리가 필요로 하는 저장소는 용기의 일부분이 아니다. 용기는 일회용이어야 하기 때문이다.우리는 수시로 새로운 컨테이너를 제기할 수 있어야 한다.그런데'지속성'데이터는 어디로 갔을까?그것은 볼륨에 유지된다.이 절에서 우리는 두 개의 볼륨을 정의할 것이다. 하나는 코드에 사용되고, 다른 하나는 홈 디렉터리에 사용되며, 용기의 생명 주기 외에 데이터를 보존하는 데 도움을 줄 것이다.
services
는 docker compose에게 이것은 실행 가능한 서비스라는 것을 알려주는 방법으로 자신의 용기가 있을 것이다.저희가 정의한 서비스 이름은
webapi
입니다.지정한 경로에 볼륨을 불러왔고, docker 이미지 node:lts
에서 이 서비스를 만들어야 한다고 지정했습니다.이미지에 사용할 수 있는 레이블node
을 다음 위치에서 볼 수 있습니다. Node image on Docker Hub이곳의 중요한 요소 중 하나는
command
인데 이것은 필수적이고 중요한 것이다.이것은 용기를 시작할 때 실행할 명령을 지정합니다.이 명령을 종료하면 컨테이너가 중지됩니다.기본적으로 gradle
용기 실행 gradle
명령이 실행됩니다.그리고 용기에 코드가 없고, 아무것도 자동으로 실행하지 않으려면 용기가 정지됩니다.이 항목을 삭제하고
docker-compose up
명령을 다시 실행하여 이 동작을 시도합니다.데이터베이스 추가
이 설정에 데이터베이스를 추가하는 것은 매우 간단합니다.만일 우리가 MongodB 실례를 사용하기를 원한다면, 첫 번째 단계는 저장을 지속시키기 위해 불러올 볼륨을 찾는 것이다.만약 이것이 당신의 일회용 실례라면, 지속적인 저장소를 사용하지 않기로 선택할 수 있지만, 이를 실현하는 절차를 보여 드리겠습니다.
우선, 우리는 데이터베이스에 있는 데이터가 용기 창설 주기 내에 변하지 않기를 희망하며, 우리가 서로 다른 버전의 데이터베이스를 사용하기를 원하지 않도록 한다.따라서 다음과 같이
volumes
섹션에 다른 항목을 추가합니다.db-data: {}
모든yaml 파일의 빈칸은 매우 중요합니다.따라서 세 항목이 정렬되었는지 확인하십시오.다음은 데이터베이스 자체를 추가합니다.이를 위해 Docker Hub page of Mongo의
How to use this image
부분을 살펴보자.docker compose 파일에 서비스 항목을 추가하지만 수정이 필요합니다.
services
파일의 docker-compose.yaml
부분에 다음과 같은 내용을 추가합니다. mongo:
image: mongo
restart: always
volumes:
- db-data:/data/db
기존의 용기를 멈출 필요가 없다.docker-compose up -d
명령을 다시 실행하기만 하면 모든 관련 작업을 수행할 수 있습니다.당신은 비슷한 상황을 보게 될 것이다.
Creating volume "my-dev-env_db-data" with default driver
Pulling mongo (mongo:)...
latest: Pulling from library/mongo
Digest: sha256:02e9941ddcb949424fa4eb01f9d235da91a5b7b64feb5887eab77e1ef84a3bad
Status: Downloaded newer image for mongo:latest
my-dev-env_webapi_1 is up-to-date
Creating my-dev-env_mongo_1 ... done
다음 단계
좋습니다. 작업 용기를 만들었습니다.Docker Dashboard UI를 열면
my-dev-env
또는 사용자가 사용하는 이름의 항목을 볼 수 있고, 이 항목을 펼치면 두 개의 서비스 용기를 볼 수 있습니다: 웹api와 mongo.다음 단계:.
본문은 최초로 발표되었다. https://blog.mandraketech.in/dev-environment-using-docker-compose-and-vs-code
Reference
이 문제에 관하여(Docker Compose 및 VS 코드로 환경 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mandraketech/dev-env-using-docker-compose-and-vs-code-1ofb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)