
sudo apt install git
git config --global user.name bh
git config --global user.email bh@gmail.com
github에 올릴 코드를 작성: main.go
package main
import (
"fmt"
"time"
)
func main() {
for {
fmt.Println("Hello World")
time.Sleep(10 * time.Second)
}
}
go 프로그램 빌드
go build main.go
go 프로그램 실행 확인
./main

Dockerfile 생성 및 작성
FROM golang:1.13-alpine as builder
RUN apk update && apk add git
WORKDIR /usr/src/app
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-s' -o main .
FROM scratch
COPY --from=builder /usr/src/app .
CMD ["/main"]
이미지 생성
docker build -t goapp:1.0 .
컨테이너 생성 및 실행 확인
docker run --name goapp-deploy goapp:1.0

git 초기화
git init
업로드할 코드 추가
git add .
commit
git commit -m "cicd"
github에 올리기 위해서는 일반적으로 branch를 main으로 수정
예전에는 github의 기본 브랜치가 master 여서 바로 올리면 되었는데 지금은 main 으로 변경
git checkout -b main
원격 저장소 연결
git remote add origin 원격저장소경로
원격 저장소 확인
git remote -v
push
git push origin main
이 때 github 아이디와 비밀번호를 물어보는데 비밀번호는 토큰 값을 입력해야 합니다.

vi dockercicd.yml
name: "dockercicd"
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set Up GO
uses: actions/setup-go@v3
with:
go-version: 1.15
- name: Build
run: go build -v ./..
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: build and release to DockerHUb
env:
NAME: ${{ secrets.DOCKERHUB_USERNAME }}
REPO: dockercicd
run: |
docker build -t $REPO .
docker tag $REPO:latest $NAME/$REPO:latest
docker push $NAME/$REPO:latest
git push origin main

