일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 카카오클라우드
- 오리지널스 솔티드 에그 싱글
- 리눅스
- 교내활동
- kakaocloud
- dockerfile
- docker
- poetry
- 리눅스 동아리
- 쿠버네티스
- 애저
- 웹 서버
- 벅벅
- az-900
- Azure
- 한성대입구역
- K8S
- Kubernetes
- 더블쿼터파운더 치즈 세트
- Azure 자격증
- 테라폼
- 오리지널스 솔티드 에그
- 웹 배포
- 더블쿼터파운더 치즈
- 화랑대
- 버거킹 오리지널스 솔티드 에그
- Terraform
- 가상환경
- 도커
- 수제버거
- Today
- Total
클라우드 공부 일지
Dockerfile을 이용한 웹 프로젝트 배포(with kakaocloud) 본문
니꼴라스 선생님과 함께한 momentum 웹 프로젝트를 Dockerfile로 배포해보고 싶어 kakaocloud에 접속해보았다.
https://nomadcoders.co/javascript-for-beginners
바닐라 JS로 크롬 앱 만들기 – 노마드 코더 Nomad Coders
Javascript for Beginners
nomadcoders.co
사용자 스크립트를 이용해서 도커가 설치된 Ubuntu 인스턴스 하나를 생성하였다.
아래는 GPT가 생성해준 사용자 스크립트이다.
#!/bin/bash
# 도커 설치를 위한 스크립트
# 1. 필요한 패키지 설치
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 2. 도커 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 3. 도커 저장소 추가
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. 도커 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 5. 도커 자동 시작 설정
sudo systemctl enable docker
sudo systemctl start docker
인스턴스에 접속한 후 docker --version을 통해 도커가 잘 설치되었는지 확인해주었다.
docker --version
이미지를 만들기 위한 Dockerfile도 생성해주었다.
GPT가 알려준 Dockerfile 만드는 방법을 참고하여 만들어보았다.
sudo vi Dockerfile
추후 알게된 내용인데 RUN을 여러번 사용할 경우 무거워진다는 얘기를 들어서 다음에는 RUN 하나에 명령어들을 묶은 뒤 이미지 용량 차이를 비교해보려고 한다.
Dockerfile을 이용하여 momentum이라는 이름과 1.0의 태그를 가진 이미지를 빌드해주었다.
sudo docker build -t momentum:1.0 .
빌드가 완료된 후 docker run을 통해 웹 서버 컨테이너를 실행해주었다.
sudo docker run -p 80:80 momentum:1.0
웹 서버 컨테이너가 잘 작동하는지 확인하기 위해 인스턴스의 Public IP를 통해 접속해보았다.
이상 없이 잘 작동하는 것을 확인해주었다.
이대로 끝내기에는 아쉬워 이전에 가비아에서 구매해둔 도메인 주소를 인스턴스의 Public IP와 연결해주었다.
Django로 만든 블로그 웹 프로젝트도 있어 배포해보았는데 경로 문제인지 css가 적용되지 않는 문제가 생겼다.
나중에 경로를 수정하여 해결해보아야겠다.