본문 바로가기
Personal Projects/소셜 북마크 서비스 🙂

[개인] 소셜 북마크 - 인프라 설계 및 구축 3. 개발 환경 구축

by Aaron-Kim 2022. 1. 16.

인프라 설계 및 구축 3. 개발 환경 구축

인프라 마지막 시간으로 실 서비스 환경과 비슷하게 도커를 이용하여 개발 환경을 구축하겠습니다.

 

 

우선 Local/Host PC에는 VS Code, Git Client, MySQL Workbench 8.0을 설치하시고

MySQL Workbench 8.0은 지난번에 구축한 Oracle Cloud DB 서버와 연동시키면 됩니다.

 

개발 환경 구축 절차 (Docker Client Server)

  1. File Sharing setting
  2. docker container run by Centos 7 image
  3. 기본 패키지 설치
  4. Nginx 설치
  5. Volta, node, pm2 설치
  6. image commit

 

// docker container run by centos:7 image
// 윈도우는 자동으로 C 드라이브 공유되서 따로 도커 데스크탑 설정 필요 X (mac은 preference에서 개별 설정)
docker container run -it --name socialbmdev --hostname socialbmdev -v <file sharing 할 local PC 경로:도커 컨테이너 내 경로> -p <host 포트:container 포트> centos:7 /bin/bash

 

yum install epel-release -y

yum install telnet which rsync openssh-clients -y

 

// yum 외부 저장소 추가
vi /etc/yum.repos.d/nginx.repo

// install by using YUM
yum install nginx -y

// local은 systemctl (daemon)으로 띄울 필요 X
// 프로세스로 띄우기 (.bashrc에 따로 설정하여 자동 시작)
// 개발 서버에서는 프로세스가 1개만 있으면 되므로 nginx.conf 에서 worker_process = 1로 설정
nginx

 

// 시간대 (date) UTC -> KST
ll /etc/localtime
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

// Oracle Cloud 실 서비스 서버
sudo systemctl start rsyncd.service
sudo systemctl enable rsyncd.service

 

rsync -avz -e 'ssh -i <키 경로>' opc@<서버 이름>:/home/opc/check.txt .
rsync -avz -e 'ssh -i <키 경로>' ~/.text.txt opc@<서버 이름>:/home/opc/

 

  • Epel-release (Extra Packages for Enterprise Linux) ✔
  • Nginx ✔
  • Volta ✔
  • PM2 by Volta ✔
  • Node, NPM by Volta ✔
  • rsync, rcp setting ✔

nginx.conf - local.conf 를 설정합니다.

기본적으로 local PC에서 원하는 도메인을 브라우저에 입력하면 자동으로 개발 서버로 이동되도록 했습니다.

(윈도우 hosts 파일 관리자 권한으로 수정 - 원하는 개발 환경 localhost 주소로 원하는 도메인 alias 등록,

 웹 서버, DB 서버 대한 ip alias 설정)

 

개발 환경 시간 date를 UTC -> KST로 변경하였습니다.

 

이후 .bashrc에 Oracle Cloud 실 서비스 2개 서버로 접속하는 명령어에 대한 alias 를 걸어서

개발 환경에서 명령어 하나로 간단하게 바로 실 서비스로 접속할 수 있도록 세팅했습니다.

.git이 적용되어 있는 개발 환경에서 작업 후 실 서비스로 rsync을 이용해서 쉽게 배포가 가능하고,

그걸 바로 개발 환경에서 실 서비스로 접속하여 실 서비스 서버의 상태를 확인할 수 있습니다.

 

이 작업을 할 때 주의하셔야 할 것은 바로 docker container 하고 local PC 폴더를 공유한 곳에서

chmod 작업 권한을 잘 주셔야 합니다. Oracle Cloud 관련 private key에 대해서 chmod를 잘 설정하시고,

또 local 도메인으로 들어가면 나오는 html 등 파일에 대한 chmod도 잘 주셔야 정상 동작합니다.

 

저는 Oracle Cloud 서버 관련 private key 파일들에 대한 권한은 chmod 600으로 설정하였습니다.

 

그렇게 도커 개발 환경과 실 서비스 환경 간의 연동을 다 하고 간단히 파일을 만들어서 업로드 및 내려받기

등 테스트를 진행해서 잘 연동이 된 것을 확인했습니다.

 

마지막으로 docker commit을 통해 image로 구워서 다른 동료분들이 다운 받아서 각자 개발 환경을

세팅할 수 있도록 .tar 확장자로 save까지 하였습니다.

(당연히 현재 프로젝트 관련 정보는 모두 지웠습니다.

 그리고 본 글에서는 파일 용량 제한으로 dockerhub에 image를 push한 링크를 공유하겠습니다.)

 

이미지를 dockerhub에 push하였습니다. (dockerhub)

dockerfile 확장자 형태로 YAML 파일 구성해서 나중에 docker-compose 기능 이용하는 것은

사실 어려운 것은 아니기에 우선 저는 여기까지 진행하고 이후 시간이 된다면 지속적으로

글을 업데이트하여 제공하겠습니다.

 

지금까지 인프라 설계 및 구축을 마치겠습니다.


[Reference]

dockerhub - dev image

시니어코딩 (유튜브) - Linux, Docker

반응형

댓글