반응형
프로젝트 세팅
husky 커밋 훅 설정
커밋 시 자동으로 prettier
를 적용해서 커밋하도록 설정
root
에서 설치
pnpm add -wD husky lint-staged
root
의 package.json
에 추가
"scripts": {
"prepare": "husky"
}
"lint-staged": {
"apps/maplem/frontend/src/**/*.{js,ts,tsx}": [
"prettier --cache --write"
],
"apps/maplem/backend/src/**/*.{js,ts}": [
"prettier --cache --write"
],
"configs/**/*.{js,json}": [
"prettier --cache --write"
]
}
커밋 시 lint-staged
실행되도록 프리커밋 훅 .husky/pre-commit
추가
#!/bin/sh
pnpm lint-staged
git update-index --again || exit 1
docker 세팅
우선 각 프로젝트에 도커파일을 두는게 아니라 프로젝트별로 묶어서 관리하려 함
또한 개발 모드에서는 변경 사항이 실시간으로 바뀌도록 볼륨 마운트를 설정
- root
- docker
- maplem
- dev
- docker-compose.yml
- Dockerfile.backend
- Dockerfile.frontend
- prod
- nginx
- nginx.conf
- docker-compose.yml
- Dockerfile.backend
- Dockerfile.frontend
docker 초기화 커맨드
docker stop $(docker ps -aq) # 모든 컨테이너 중지
docker rm $(docker ps -aq) # 모든 컨테이너 삭제
docker rmi $(docker images -q) # 모든 이미지 삭제
docker volume rm $(docker volume ls -q) # 모든 볼륨 삭제
docker network rm $(docker network ls -q) # 모든 네트워크 삭제
docker system prune -a --volumes # 전체삭제
Docker 이슈
처음에 도커에 대한 이해 없이 그냥 사용하려하니까 잘 안돼서, 공부하고 삽질하느라 한 2 ~ 3주 정도 소요됨.
개발용과, 배포용 두 버전의 도커 프로세스를 구성해서 동작하도록 설계했는데,
watch
기능이 생각한 대로 잘 동작하지 않아서, 개발환경에서는 사용하지 못할 것 같음..
세팅만 한세월하고 있어서 배포용 도커파일은 기능개발이 어느정도 완성된 시점에 다시 작성할 예정.
+
Turborepo + vite + docker 로 구성된 프로젝트의 컨테이너에서 hot reloading
세팅이 되신분은 도움 부탁드려요