[배포2] SpringBoot, Docker, Nginx, githubAction 무중단 배포 : ubuntu에 docker 설치, nginx설치하기

디하·2024년 1월 22일
2

배포

목록 보기
2/8
post-thumbnail

ec2 ubuntu에 docker 설치 ⚡️

  1. sudo 를 매번 치기 귀찮을때 sudo su 작성
    root 계정으로 바뀐다

  2. 리눅스 apt-get update 를 해서 최신파일을 다운로드해준다

apt-get upgrade

y 클릭 후
Ok enter 해준다


docker 설치

1. 필요한 패키지 설치

apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

2. docker 공식 GPG 키를 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3. docker 공식 apt 저장소를 추가

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

4. 시스템 패키지 업데이트

apt-get update

5. docker 설치

apt-get install docker-ce docker-ce-cli containerd.io

6. docker compose 설치

curl \
-L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose

7. docker compose 실행 권한 주기

chmod +x /usr/local/bin/docker-compose


1. docker token

docker 에서 회원가입 후
myaccount -> security -> new access token

2. docker login

docker login

  • username : docker username
  • password : docker token

nginx 설치

1. 설치

docker pull nginx

2. nginx 확인

docker container run --name nginxserver -d -p 80:80 nginx

docker ps

3. ngnix 설정 변경

  1. nginxserver로 들어가기

docker exec -it nginxserver bash

root @ip-탄력적 ip 에서 -> root@ container id로 바뀐게 보인다
그럼 nginxserver로 들어온거다

/etc/nginx/conf.d# default.conf으로 접속

그래서 default.conf를 수정해 주고 싶은데
vim default.conf를 명령해줘도 vim을 찾을 수 없다고 나온다

그럴때는 아래 과정을 통해 vim을 설치해준다

apt-get update

apt-get upgrade

apt-get install vim

vim default.conf

i를 눌러서 --INSERT-- 모드로 바꾼 후
default.conf 내용을 수정해준다


server 위에 upstream blue /green 서버를 8080; 8081; 서버로 작성을 해준다

나중에 docker 무중단 배포시 포트를 blue/green을 바꿔서 배포해주기 위함이다

빨간색으로 가려진 부분은 본인 인스턴스의 탄력적 IP주소를 넣어주면 된다

location / {
        proxy_pass http://$service_url;

        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

include ~/service-env.inc에
server_url이란 변수를 저장해둘 예정

Proxy_pass http://blue or http://green 으로 바꿀 수 있게
server_url에 blue/green을 설정해둠

✅ 전체 코드

upstream blue {
        server 11.111.111.111:8080;
}
upstream green {
        server 11.111.11.111:8081;
}

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    include /etc/nginx/conf.d/service-env.inc;

    location / {
        proxy_pass http://$service_url;

        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

모든 작성이 끝났으면 저장해두고 나가야한다

  • esc + :wq -> 저장 후 나감
  • esc + :q! -> 저장하지 않고 나감

esc + :wq -> 저장 후 나감 사용해서 설정을 저장해둔다


  1. service-env 만들기

새로운 문서 작성하듯이 새로 만들어준다

vim service-env.inc

초기 설정은 green으로 설정해주기

다음은 docker-compose-blue.yml , docker-compose-green.yml 파일 설정을 해보겠다

profile
🖥️ ⌨️🖱️🩵

0개의 댓글

관련 채용 정보