개발일기장

Docker 공부(4) - git action , Docker hub에 이미지 push하기(간단) 본문

STUDY/Docker

Docker 공부(4) - git action , Docker hub에 이미지 push하기(간단)

게슬 2022. 5. 30. 11:53
728x90

이전까지 CI/CD하면 뭐 맨날 travis CI같은 곳에서 해라는 책만 봤었음.

지인 회사에서 git action많이 쓴다고 해서 이걸로 쭉 배포까지 해보려는데 아직은 공부중이라 hub에 push까지만.


0. 기본설정

1. 일단 Docker hub들어가서 token받아와서 어딘가에 써두기 -> 까먹으면 안됨

2. github에 등록할 리포지토리가 있어야함 -> React사용했음.

3. Dockerfile도 작성해 둬야함.

 

▶내가 사용한 도커파일 ( CRA에서 build하고 Nginx로 파일 옮겨서 배포하는 이미지)

FROM node:16 as builder

WORKDIR /usr/src/app
COPY package.json ./
RUN npm install

COPY ./ ./
RUN npm run build

FROM nginx

COPY --from=builder /usr/src/app/build /usr/share/nginx/html

 

4. github secret설정하기

docker hub에 접속하기 위해 계정이름과 토큰을 설정해둬야함

1 -> 2-> 3 -> New repository secret

여기까지 했으면 준비는 끝


1. Action만들기

repository

1. action을 설정하고 싶은 repository에 들어가서 Actions 탭으로 가면 친절하게도 Docker image를 추천해줄 것임.. (아니면 Search하기)

야호

2. Configure를 눌러서 만들어보자

처음에는 이렇게 나온다. Dockerfile를 작성해 뒀다면 그냥 바로 commit해서 어떻게 돌아가는지 확인은 할 수 있지만

목표는 hub에 push해서 원격저장소에 이미지를 두는것임


2. yml 파일 작성

step부분은 지우고 이렇게 설정했음

name: Docker Image CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:      
    - 
      name: Checkout
      uses: actions/checkout@v2.4.2
    - 
      name: Docker Login
      uses: docker/login-action@v2.0.0
      with: 
        username: ${{secrets.DOCKERHUB_USERNAME}}
        password: ${{secrets.DOCKERHUB_TOKEN}}
        
    - 
      name: Build and push Docker images
      uses: docker/build-push-action@v3.0.0
      with:
        contect: .
        file: ./Dockerfile
        push: true
        tags: tlqckd0/react
        labels: latest

근대 이거 작성하기 전에 오른쪽에 Marketplate에 원하는 단계들 login, build, push 이런거 검색하면 버전이랑 옵션들 친절하게 다 나와있어서 그거보고 해도 상관없을듯? 엄청 친절하다.

1. Docker에 로그인하기.

login

2. Build한 이미지 Push하기

build & push

context : build할 파일들의 위치, 

file : Dockerfile 이름

tags: 이미지 이름

labels: 버전

 

이거말고 뭐 여러가지 단계 설정할 수 있음.

원래 처음에는 Checkout단계부터 하는게 정석이라고 한다.

그리고 저 file내부에서 사용할 meta변수들도 설정하는 것이 작성할때 편하다는 이야기

 

그리고 commit을 하면 이렇게 실행이 된다.

야호

그리고 Docker hub에 들어가서 확인을 하면 됨.

Docker hub

허브에도 잘 들어왔고 다음에는 AWS에 올려볼까 싶은데 요즘 네이버클라우드 많이 사용한다고 해서 그걸로 해볼까 생각.

728x90

'STUDY > Docker' 카테고리의 다른 글

Docker 공부(3) - docker-compose  (0) 2022.05.27
Docker 공부(2) - NodeJS를 이용하여  (0) 2022.05.26
Docker 공부(1)  (0) 2022.05.25
Comments