기존 시놀로지 자체에 웹서버를 배포했으나, 코딩배포가 너무 까다로웠다.
문제는 pm2 issue.
PM2를 지나치게 많이 설치해야했다.(중복설치만 20번이 넘었음)
이거때문에 설치 및 로그로 인해 커널단 로그가 꽉차서 삭제해야했다..
이런 것을 겪고 나면서, 기존 pm2로 돌리던 코드들을 모두 Docker로 이동의 필요성을 느꼈다.
개인적으로 필요성을 느끼지 않으면 학습하지 않아서...ㅇㅅㅇ...
어쩔 수 없이 도커로 이전을 준비하기 시작했다.
그래서 도커에 대한 학습을 시작했다. udemy에서 예전에구매한 강의 271강... 미친거 아닌가?
쿠버네티스도 포함이라 그런듯 싶다만 뭐지..
이거 쿠버네티스 생각하면서, 이전에 현업에서 서버 여러개 조작하던 secureCRT 터미널 동시조작하는 법을 배우던 동료직원이 생각났다.
아무튼,
생활코딩에 필요한 내용만 적혀있어 해당 내용으로 학습을 시작.
docker 명령어 학습 및 image 생성.
docker-compose up/down.
docker network create [network name]
등등
도커간 통신시에 네트워크를 묶어주고 진행하는데, 시놀로지는 애초에 설정시 네트워크 묶는 걸 물어봐서 그런건 필요없더라.
도커 컴포즈시 해당 명령어를 같이 쓰면 자동으로 네트워크가 묶인다.
linux나 mac os, window때 써야할 명령어.
생활코딩으로 해당 내용을 학습을 진행하고, 이제 배포를 적용하기 시작했다.
갑자기, 나의 시놀로지가 x86이라서 arm64로 배포한 manifest 이슈가 발생했다.
빌드를 애초에 둘다 호환되는 방식으로 구성해야했다.
docker tag [도커 이미지] [계정명/도커이미지:버전]
docker buildx build --platform linux/amd64,linux/arm64 -t [계정명/도커 이미지 이름] --push .
시놀로지에서 좀 골때리는게 private 도커 레포같은 경우 pull 안된다...
애초에는 login이 안되서 그런 듯...아마도 password에서 토큰으로 전환된 문제인 듯 싶다.
내가 쓰는 제품이 너무 오래된 버전이라 그런가...? 2016년도 버전이긴해...
어쩔 수 없이 api를 외부로 public으로 전환했다가 다시 private로 하는 방식으로 전환 진행.
모든 소스코드 전환을 완료했다.
결국 완료!!!
중간에 docker를 통해 실시간 개발을 nextjs코드 띄우고 가능한가 봤는데, 되긴 하는데,
docker 자체가 restart시에 원래 상태로 돌아가고, 그걸 적용하는데 너무 불편하다.
그냥 local에서 명령 적용하고, 해당 내용을 배포하는 방식이 좋을 듯..
ci/cd 관련해서도 적용하고 싶긴한데 webhook을 쓸까 했는데, api 주소는 공개안하려고해서 안되고,
소프트웨어 핸드쉐이크를 구현할까 생각 중이다.
아니면 크론탭 1일에 한번씩 자동 연동되는 방식으로 하던가 좀 고민...
'코딩 > 도커' 카테고리의 다른 글
[도커] 도커는 유료라서 깃허브 컨테이너로 이전 (0) | 2025.05.15 |
---|---|
[도커] dockerfile 만들기 가이드 (0) | 2025.05.15 |
[도커] 도커 이미지 생성방법 (0) | 2025.05.12 |
[도커] 도커 공부 (3) | 2025.05.12 |