Docker 및 Visual Studio 코드 개발자를 사용하여 ExpressJS 응용 프로그램 디버깅
NodeJS와 ExpressJS를 사용하기 시작했을 때, 교육과 블로그에서 본 것은 NodeJS를 설치할 때의 설명입니다.자질구레하지만 기업 응용 프로그램 개발 분야에서 기업 응용 프로그램 개발 분야에서 고객에게 배치하고 정확한 환경을 다시 만들 수 있는 것이 중요하다. 이 작업 흐름에 Docker의 응용 프로그램이 있는지 알고 싶다.
Docker와 Docker Compose를 탐색할 때 NodeJS와 Express를 사용하는 설명이 있으면 시작점이 더 쉬워질 것입니다.그러나, 내가 계속 탐색할 때, 나는 내가 VS 코드를 설정하는 방법을 안내할 수 있는 어떤 방법도 찾지 못했다. VS 코드는 내가 선택한 편집기로서 나의 응용 프로그램을 개발하는 데 사용되고, 동시에 단점을 사용한다. 마치 내가 나의 기계에서 로컬로 개발한 응용 프로그램과 같다.
이것이 바로 어떤 것이 작용하고 다른 사람이 쉽게 사용할 수 있도록 하는 사냥이 시작되는 곳이다.여러 가지 선택을 탐색한 후에 나는 업무 흐름을 확대했다. 이것은 나로 하여금 곧 시작하게 할 것이다.생활 속의 모든 것처럼, 일을 좀 해야 한다.그럼 시작합시다.
다음은 저희가 이 블로그에서 할 일입니다.
추가 읽기 전제 조건은 다음과 같습니다.
이 단계의 마지막에는 Express 템플릿, Dockerised 및 디버깅 응용 프로그램에 사용할 VS 코드 환경이 생성됩니다.
나는 이 응용 프로그램의 생산에서 Docker를 사용하는 것을 상세하게 소개하지 않고 개발만 했다.
Github 지원 코드 및 후속 제출 내역 제공
ExpressJS 애플리케이션 생성
Docker의 장점은 로컬에 도구를 설치할 필요가 없다는 것입니다.풍자적인 것은 내가 곧 프레젠테이션을 하는 과정에서 첫 번째 단계는 NodeJ를 설치해야 한다는 것이다.하지만 이번이 처음이야.그 이후로 너는 영원히 그것을 필요로 하지 않는다.
Express 응용 프로그램을 생성하려면 다음 명령을 실행합니다.
npx express-generator
다음과 같은 출력이 표시됩니다.
너는 어떤 일도 할 필요가 없다npm install
.이것이 바로 왜 네가 풍자해야 하는가
로컬 Git 리셋 생성
최선의 실천으로서, 이 점까지 굴러갈 필요가 없도록 로컬git 저장소를 초기화하는 것을 권장합니다.다음 단계는 다음과 같습니다.
git init .
git add .
git commit -m "new express app (generated)"
VS 코드 구성
다음 명령을 실행하여 선택한 디렉토리에서 VS 코드를 시작합니다.code .
VS 코드의 Extensions 탭으로 전환하고 다음 확장이 설치되어 있는지 확인합니다(Microsoft에서 발표).
npx express-generator
최선의 실천으로서, 이 점까지 굴러갈 필요가 없도록 로컬git 저장소를 초기화하는 것을 권장합니다.다음 단계는 다음과 같습니다.
git init .
git add .
git commit -m "new express app (generated)"
VS 코드 구성
다음 명령을 실행하여 선택한 디렉토리에서 VS 코드를 시작합니다.code .
VS 코드의 Extensions 탭으로 전환하고 다음 확장이 설치되어 있는지 확인합니다(Microsoft에서 발표).
VS 코드 확장으로 마력 발휘
- 애플리케이션 플랫폼: Node JS
- 애플리케이션 스누핑 포트: 3000
- Docker Compose 파일(옵션) 포함: 예
여기로 다시 굴러갈 필요가 없도록 파일을 다시 제출합니다.따라서 VS 코드를 사용하여 파일을 추가하고 주석을 사용하여 생성된 Docker 파일 추가 제출
원격 컨테이너 시작
보시다시피 우리는 아직 마법 명령을 실행하지 않았습니다npm install
근데 조금만 더 버텨.
파일을 편집하기 전에 마지막 파일을 생성합니다.따라서'명령 팔레트'로 돌아가서'원격 용기: 개발 용기 프로필 추가'명령을 실행합니다.
다음 프롬프트의 경우How would you like to create your container configuration?
다음 값을 사용합니다.From docker-compose.debug.yml
용기에서 개발하기 위해 다시 열라는 알림을 볼 수 있지만, 아직 없습니다.수동 절차가 좀 필요합니다.
그러나 우리가 시작하기 전에git에 파일을 추가하고 "addgenerated devcontainer config"주석을 첨부합니다
정리하다
첫 번째 단계는 디렉터리와 내용을 삭제하는 것이다.이러한 파일은 Docker 확장자를 통해 생성됩니다.우리는 그들을 필요로 하지 않는다. 우리는 우리의 임무에 전념하기를 바란다.만약 당신이 그것들을 필요로 한다면, 그것들은git 역사에 나타날 것이다.
삭제하고 커밋합니다.
Dev Dockerfile 업데이트
다음 절차를 따르십시오.
첫 번째 단계는 디렉터리와 내용을 삭제하는 것이다.이러한 파일은 Docker 확장자를 통해 생성됩니다.우리는 그들을 필요로 하지 않는다. 우리는 우리의 임무에 전념하기를 바란다.만약 당신이 그것들을 필요로 한다면, 그것들은git 역사에 나타날 것이다.
삭제하고 커밋합니다.
Dev Dockerfile 업데이트
다음 절차를 따르십시오.
.vscode
된 사본 및 이름Dockerfile
Dockerfile.debug
및 다음을 수행합니다.- 첫 번째 행에서 제거
Dockerfile.debug
.우리는 완전한 디버깅 환경이 필요하다- 회선 변경
-alpine
... 에 이르다RUN npm install --production --silent && mv node_modules ../
파일은 다음과 같습니다.FROM node:12.18
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
RUN npm install
명령에서 Node 버전을 변경하고 FROM
에서도 일관성을 유지하도록 할 수 있습니다.다시 한 번, 이 글에서 이 응용 프로그램의 생산과 사용에 들어가지 마세요.
node_모듈 덮어쓰지 않기
용기에서 사용Dockerfile
배후의 생각은 이 환경에서 정확한 모듈 바이너리 파일을 사용할 수 있도록 하는 것이다.우리는 그곳에서 당신의 로컬 기계를 위해 node_모듈을 사용하고 싶지 않습니다.따라서 파일을 업데이트해야 합니다 npm install
.
나는 여기에 온전한 줄을 붙였다.docker-compose.debug.yml
부분을 변경했고 build
를 추가했습니다.git는 변경된 줄을 표시합니다.YAML 파일은 들여쓰기에 민감하기 때문에 왜 작동하지 않는지 찾아내는 데 몇 시간이 걸리지 않습니다.
version: '3.4'
services:
sample:
image: sample
build:
context: .
dockerfile: Dockerfile.debug
environment:
NODE_ENV: development
ports:
- 3000:3000
- 9229:9229
volumes:
- /usr/src/app/node_modules
command: ["node", "--inspect=0.0.0.0:9229", "./bin/www"]
VS 코드가 올바른 위치에 있는지 확인합니다.
보시다시피, 우리가 이미 처리한 파일 중, 특히 volumes
과 Dockerfile.debug
에는 용기에 있는 원본의 위치를 가리키는 특정한 인용이 있습니다.( docker-compose.debug.yml
). 따라서 VS Code가 작업 위치로 인식되도록 해야 합니다.우리 이렇게 합시다.
version: '3.4'
services:
sample:
image: sample
build:
context: .
dockerfile: Dockerfile.debug
environment:
NODE_ENV: development
ports:
- 3000:3000
- 9229:9229
volumes:
- /usr/src/app/node_modules
command: ["node", "--inspect=0.0.0.0:9229", "./bin/www"]
보시다시피, 우리가 이미 처리한 파일 중, 특히
volumes
과 Dockerfile.debug
에는 용기에 있는 원본의 위치를 가리키는 특정한 인용이 있습니다.( docker-compose.debug.yml
). 따라서 VS Code가 작업 위치로 인식되도록 해야 합니다.우리 이렇게 합시다./usr/src/app
파일.devcontainer/devcontainer.json
및 값workspaceFolder
에서 /workspace
로 변경/usr/src/app
파일.devcontainer/docker-compose.yml
섹션volumes
Update this to wherever you want VS Code to mount the folder of your project
을(를) /workspace
로 변경합니다.예전과 같이git에 힘쓰다.
그리고 하나 더...
아니오, 그런 신기한 말은 할 줄 몰라요.우리 끝났어.VS 코드 창의 왼쪽 아래 모서리에 있는 녹색 아이콘을 클릭하거나 명령 팔레트 및 컨테이너에서 다시 열 수 있습니다.
관심 있는 경우 배포 중에 표시되는 메시지의 적절한 링크를 클릭하면 VS 코드가 로그를 표시하는 데 도움이 됩니다.
너는 지금 출발할 준비가 되어 있다.
네, 그리고 하나 더 있어요./usr/src/app
를 변경한 경우 업데이트package.json
가 필요하고 일부 이유로 도움이 되지 않으면 node_modules
를 열고 용기에서 다시 열기 를 실행할 수 있습니다.
디테일
VS 코드에 사용하고 싶은 확장자가 있다면, 이 확장자를 Command Palette
파일의'extensions'속성에 추가할 수 있습니다.
네가 알고 있는 바와 같이, 너는 소포를 열 수 있다.json, 적절한 위치에서 프로그램을 디버깅할 수 있도록'디버깅'알림을 보십시오.
즐겁게 놀다
작성자 정보:
Navneet Karnani는 경험이 풍부한 Ployglot의 베테랑이다. 그는 기술을 탐색하여 위대한 제품을 구축하고 그가 사용하는 도구에서 더욱 높은 생산력을 얻으려고 노력한다.
Reference
이 문제에 관하여(Docker 및 Visual Studio 코드 개발자를 사용하여 ExpressJS 응용 프로그램 디버깅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mandraketech/building-expressjs-app-with-docker-and-visual-studio-code-devcontainers-529n
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
VS 코드에 사용하고 싶은 확장자가 있다면, 이 확장자를
Command Palette
파일의'extensions'속성에 추가할 수 있습니다.네가 알고 있는 바와 같이, 너는 소포를 열 수 있다.json, 적절한 위치에서 프로그램을 디버깅할 수 있도록'디버깅'알림을 보십시오.
즐겁게 놀다
작성자 정보:
Navneet Karnani는 경험이 풍부한 Ployglot의 베테랑이다. 그는 기술을 탐색하여 위대한 제품을 구축하고 그가 사용하는 도구에서 더욱 높은 생산력을 얻으려고 노력한다.
Reference
이 문제에 관하여(Docker 및 Visual Studio 코드 개발자를 사용하여 ExpressJS 응용 프로그램 디버깅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mandraketech/building-expressjs-app-with-docker-and-visual-studio-code-devcontainers-529n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)