Docker를 사용하여 로컬 개발
4760 단어 containerdevelopmentdocker
Pixabay, Pexels에 촬영
Docker/Containers는 이미 응용 프로그램을 구축하고 배치하는 사실의 표준이 되었다.용기의 격리성, 이식 가능성, 확장성이 응용 프로그램 배치의 핫이슈로 떠올랐다.
그러나 용기는 응용 프로그램 배치뿐만 아니라 로컬 개발에도 사용된다.그것들은 많은 개발자들의 문제를 해결할 수 있다.Docker 컨테이너를 개발하는 동안 사용할 수 있는 이점은 다음과 같습니다.
기본 이미지
OverEngineeredBlog는 next 위에 세워져 있습니다.js는 노드가 필요합니다.이 밖에 포장 매니저의 선택은 실이다.docker hub의 공식 노드 이미지는 here입니다.그것도 실을 포함한다.본 블로그는
node:lts
의 사진을 사용하여 node의 최신lts버전을 얻습니다.Docker Compose
docker compose를 만들었습니다.yml 파일, 전체 용기 설정을 정의하고 필요할 때 더 많은 용기를 추가합니다.
docker 작성.야마하 View on GitHub
version: '3.7'
services:
runner:
image: node:lts
ports:
- "$PORT:3000"
- "$DEBUGPORT:9229"
volumes:
- .:/app:cached
- yarn-cache-volume:/usr/local/share/.cache/yarn/v6:cached
working_dir: /app
command: "$COMMAND"
volumes:
yarn-cache-volume:
compose 파일은 기본 이미지'node:lts'를 사용하여 runner
이라는 서비스를 정의합니다.ports
섹션에서는 Docker가 호스트에 $PORT와 $DEBUGPORT의 포트 3000과 9229를 노출하도록 지시합니다.PORT 및 DEBUGPORT는 호스트에 필요한 포트를 구성하는 데 사용되는 환경 변수입니다.volumes
섹션에서는 마운트 및 명명된 볼륨을 정의합니다.프로젝트의 루트 디렉터리는 용기 내의 /app
에 설치됩니다.또한 스토리지 캐시에 대해 명명된 영구 볼륨을 정의합니다.Docker는 볼륨을 관리하고 컨테이너를 중지/시작하여 볼륨을 유지합니다.이 캐시는 용기가 다음에 시작될 때의 실행 시간을 줄였다.working_dir
은 현재 디렉터리를 ./app
으로 설정하여 용기를 시작할 때마다 디렉터리를 변경하지 않도록 합니다.command
이 환경 변수 $COMMAND로 설정되었습니다.이것은 docker compose를 호출할 때 제공할 수 있습니다.스크립트 실행
매번 같은 명령을 쓰지 않도록 docker compose를 사용하여 용기를 만드는
run
스크립트를 원합니다.View on GitHub 실행
#!/bin/sh
export PORT=${PORT:-3000}
export DEBUGPORT=${DEBUGPORT:-9229}
export COMMAND=${@:-"yarn dev"}
EXISTING_CONTAINER_ID=""
if [-n `docker-compose ps -q runner`]; then
EXISTING_CONTAINER_ID=`docker-compose ps -q runner`;
elif [-n `docker ps -q --no-trunc | grep $(docker-compose ps -q runner)`]; then
EXISTING_CONTAINER_ID=`docker ps -q --no-trunc | grep $(docker-compose ps -q runner)`;
fi
if [-z $EXISTING_CONTAINER_ID]; then
COMMAND=${@:-"yarn dev"} docker-compose run --service-ports --rm runner
else
echo "Existing container ${EXISTING_CONTAINER_ID}"
docker exec -it ${EXISTING_CONTAINER_ID} ${COMMAND}
fi
스크립트는 이렇게 실행됩니다.[PORT=<desired port on host> DEBUGPORT=<desired debug port on host>] ./run [<command>]
DEFAULTS PORT=3000 DEBUGPORT=9229 COMMAND="yarn dev"
[]
의 섹션은 옵션이며 기본값이 설정되어 있습니다.프로그램을 시작하려면 셸에
./run
을 작성해야 합니다.그것은 용기를 작동시켜 호스트의 포트 3000과 9229를 폭로한 후 용기 안에서 yarn dev
을 실행한다.모든 명령은 용기에서 실행할 수 있습니다. 방법은 그 앞에
./run
을 붙이는 것입니다. 예를 들어 패키지를 추가하려면 ./run yarn add some-package-name
을 실행하십시오../run bash
을 실행하여 bash 셸을 용기에 연결할 수 있습니다.이 bashshshell은 용기에서 접두사가 없는 명령을 실행할 수 있습니다/뛰어다니다이 스크립트는 프로그램의 용기가 실행 중인지 확인하고 명령을 다시 실행합니다.대출 기록
우리는 또한 cmd/PowerShell을 사용하여 윈도우즈 기계에 유사한 스크립트를 작성할 수 있다.
이런 설정은 나에게 매우 큰 도움이 된다.다른 버전의 node/java/python 등을 설치할 걱정은 없습니다. 또한 현재 로컬 개발의 유일한 의존 항목은 Docker입니다.
Reference
이 문제에 관하여(Docker를 사용하여 로컬 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anuragashok/use-docker-for-local-development-5gkp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)