go 개발환경을 docker를 이용해서 구축해 보려고 노력중입니다.
폴더 구성(호스트 측)
일단 기본적으로 프로젝트 폴더의 구성을 다음과 같이 함. containers폴더 밑에 앞으로 추가할 서비스들(golang, mysql 등등..)을 폴더별로 만들어 나갈 예정이고, 그 밑에 각 서비스들의 dockerfile을 작성할 계획.
docker-compose.yml은 프로젝트 작업 폴더의 루트에 두는 것이 일반적이라고 함.
docker-compose.yml
연결하여 사용하고자 하는 여러 서비스들에 대해서 기본적인 구성을 정의하는 역할을 하는 파일
version: '3'
yml의 기술 버전을 의미build
Dockerfile이 있는 폴더 경로를 지정. 경로는 docker-compose.yml 파일이 있는 곳으로부터의 상대 패스를 작성.docker-compose build 명령어를 실행할 경우, 지정한 폴더 바로 밑의 Dockerfile을 읽어서 실행.
volumes
호스트(로컬 PC)와 컨테이너의 폴더를 동기화 시키는 역할. 예를 들어, ./containers/nginx/html:/var/www/ 은 호스트의 ./containers/nginx/html 폴더를 컨테이너의 /var/www에 마운트 한다는 의미.ports
포트의 공개 내용. "8080:80" 은 호스트측의 8000 포트와 컨테이너측의 80 포트를 연결한다는 의미.nginx의 Dockerfile
FROM
Docker 이미지를 구축할 때, 기본적으로 사용하게 될 이미지를 지정. 로컬에 해당 이미지가 없을 경우, docker hub에서 자동으로 다운로드.RUN
컨테이너 내에서 실행할 커맨드를 지정. docker-compose build 명령어를 입력할 시, 해당 커맨드가 실행.실행
docker-compose build 커맨드를 입력하여 연결된 서비스들을 실행시킬 수 있는 이미지를 생성한 후, docker-compose up 커맨드를 입력하여 이미지의 컨테이너를 실행
브라우저에서 localhost:8080을 입력하면, 호스트측의 html폴더 밑의 index.html가 표시되는 것을 확인 가능.
이로써, 해당 docker이미지를 실행한 후, 호스트측의 index.html파일을 수정하면 자동으로 반영이 되는 것을 브라우저에서 확인 가능.
No comments:
Post a Comment