반응형
본 내용은 인프런의 데브위키님의 강의 "개발자를 위한 쉬운 도커" 내용을 바탕으로 정리한 내용입니다.
기존 개발 방식의 문제점
- 개발자의 PC마다 설치된 언어 및 라이브러리의 버전을 일치시키기 어렵다.
- 개발 환경과 배포 환경이 다를 경우 배포 시 장애가 발생한다.
- 새로운 개발자가 합류하면 개발 환경 설정에 오랜 시간이 걸리고, 개발 환경 버전이 변화하면 싱크를 맞추기 어려워 진다.
- 한 명의 개발자가 여러 개의 프로젝트를 개발할 경우, 각 프로젝트가 사용하는 언어나 라이브러리의 종류가 다를 수 있고 여러 개의 환경을 개발자의 PC 한 대 에서 관리하기는 어렵다.
컨테이너 내부에서 개발 환경 구성
- 도커를 활용하면 개발자의 PC들과 배포 서버의 환경을 완전히 일치시킬 수 있다.
- IDE의 원격 개발 환경 기능을 통해 각 컨테이너별로 격리된 개발 환경을 구성할 수 있다.
- 개발자의 PC에 도커만 설치가 되어도 코드를 개발할 있고 그래서 갖가지 라이브러리나 언어가 설치되지 않아 깔끔하게 유지할 수 있다.
예시 1)
leafy-frontend 애플리케이션 구동 시 리소스 사용량 제한
# 1. easydocker/leafy/leafy-backend 디렉터리 이동 및 소스코드 상태 변경
git reset --hard HEAD ; git clean -fd
# 소스코드 버전 변경
git switch 06-devcontainer
# 2. 로컬 머신에 node.js가 설치되어 있는지 확인
$ node --version
3. VSCode 실행 및 Extension 설치 (ms-azuretools.vscode-docker, ms-vscode-remote.remote-containers)
그림 1) VSCode에서 Docker와 Dev Container 추가
- devcontainer.json 파일은 VSCode가 새로운 개발 환경을 생성할 때 사용하는 파일이다.
- 같은 devcontainer.json 파일을 사용하면 개발 환경을 동일하게 구성할 수 있다.
예시 2) devcontainer.json 파일
{
"name": "Leafy-frontend project based node.js",
"dockerFile": "Dockerfile",
"forwardPorts": [80],
"customizations": {
"vscode": {
"settings": {},
"extensions": [
"dbaeumer.vscode-eslint"
]
}
},
"postCreateCommand": "npm install",
"remoteUser": "node"
}
예시 3) Dockerfile(easydocker/leafy/leafy-frontend/.devcontainer/Dockerfile)
FROM node:14
RUN apt update && apt install -y less man-db sudo
ARG USERNAME=node
RUN echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/
$USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME
ENV DEVCONTAINER=true
그림 2) 컨테이너를 사용하여 개발 환경 구성
반응형
'Docker' 카테고리의 다른 글
[Docker] DevOps와 Pipeline (0) | 2024.07.19 |
---|---|
[Docker] Docker Compose (0) | 2024.07.19 |
[Docker] 도커 실무(컨테이너 애플리케이션 최적화) (0) | 2024.07.19 |
[Docker] 도커 실무(PostgreSQL 이중화 DB 구성) (0) | 2024.07.19 |
[Docker] 도커 실무(동적 서버 구성) (0) | 2024.07.19 |