Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,13 @@ jobs:
# 개발 환경
build-and-push-dev:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/dev'
#if: github.ref == 'refs/heads/dev'
if: 1 == 2
environment: development
steps:
-
name: Checkout Repository
uses: actions/checkout@v4

-
name: Set up QEMU
# 다중 플랫폼(Docker) 이미지를 빌드할 수 있도록 해준다.
uses: docker/setup-qemu-action@v3

-
name: Set up Docker Buildx
Expand All @@ -47,16 +43,14 @@ jobs:
file: Dockerfile
build-args: |
PROFILE=${{ vars.PROFILE }}
env:
POSTGRESQL_POSTGRES_PASSWORD=${{secrets.POSTGRESQL_POSTGRES_PASSWORD}}
POSTGRES_DB=${{ secrets.POSTGRES_DB }}
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_USER=${{ secrets.POSTGRES_USER }}
TZ=${{ vars.TZ }}

push: true # 이미지를 레지스트리에 푸시합니다.
tags: ${{ secrets.DOCKERHUB_USERNAME }}/loan-postgres:${{ github.sha }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
tags: ${{ secrets.DOCKERHUB_USERNAME }}/loan-postgres-dev:${{ github.sha }}

# 운영 환경
build-and-push-prod:
Expand All @@ -68,11 +62,6 @@ jobs:
name: Checkout Repository
uses: actions/checkout@v4

-
name: Set up QEMU
# 다중 플랫폼(Docker) 이미지를 빌드할 수 있도록 해준다.
uses: docker/setup-qemu-action@v3

-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand All @@ -97,13 +86,11 @@ jobs:
file: Dockerfile
build-args: |
PROFILE=${{ vars.PROFILE }}
env:
POSTGRESQL_POSTGRES_PASSWORD=${{ secrets.POSTGRESQL_POSTGRES_PASSWORD }}
POSTGRES_DB=${{ secrets.POSTGRES_DB }}
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_USER=${{ secrets.POSTGRES_USER }}
TZ=${{ vars.TZ }}

push: true # 이미지를 레지스트리에 푸시합니다.
tags: ${{ secrets.DOCKERHUB_USERNAME }}/loan-postgres:${{ github.sha }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
tags: ${{ secrets.DOCKERHUB_USERNAME }}/loan-postgres-prod:${{ github.sha }}
49 changes: 49 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: PR Pipeline

on:
pull_request:
branches:
- main

jobs:
# 개발 환경
pull_request_build_test:
runs-on: ubuntu-latest
environment: production
steps:
-
name: Checkout Repository
uses: actions/checkout@v4

-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# Docker Buildx를 설정합니다.

-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
# GitHub Secret에서 Docker Hub 사용자 이름을 가져옵니다.
password: ${{ secrets.DOCKERHUB_TOKEN }}
# GitHub Secret에서 Docker Hub 액세스 토큰을 가져옵니다.

-
name: Build and Push
uses: docker/build-push-action@v6
with:
# 빌드 컨텍스트 : Dockerfile이 있는 위치
context: .
# Dockerfile의 경로
file: Dockerfile
build-args: |
PROFILE=${{ vars.PROFILE }}
POSTGRESQL_POSTGRES_PASSWORD=${{secrets.POSTGRESQL_POSTGRES_PASSWORD}}
POSTGRES_DB=${{ secrets.POSTGRES_DB }}
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_USER=${{ secrets.POSTGRES_USER }}
TZ=${{ vars.TZ }}

push: true # 이미지를 레지스트리에 푸시합니다.
tags: ${{ secrets.DOCKERHUB_USERNAME }}/loan-postgres:${{ github.sha }}
17 changes: 12 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,18 @@
&& rm -rf /var/lib/apt/lists/*

# 환경별 변수
ENV POSTGRESQL_POSTGRES_PASSWORD
ENV POSTGRES_DB
ENV POSTGRES_PASSWORD
ENV POSTGRES_USER
ENV TZ

ARG POSTGRESQL_POSTGRES_PASSWORD

Check warning on line 16 in Dockerfile

View workflow job for this annotation

GitHub Actions / pull_request_build_test

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "POSTGRESQL_POSTGRES_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ARG POSTGRES_DB
ARG POSTGRES_PASSWORD

Check warning on line 18 in Dockerfile

View workflow job for this annotation

GitHub Actions / pull_request_build_test

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "POSTGRES_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ARG POSTGRES_USER
ARG TZ

ENV POSTGRESQL_POSTGRES_PASSWORD=${POSTGRESQL_POSTGRES_PASSWORD}

Check warning on line 22 in Dockerfile

View workflow job for this annotation

GitHub Actions / pull_request_build_test

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "POSTGRESQL_POSTGRES_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ENV POSTGRES_DB=${POSTGRES_DB}
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

Check warning on line 24 in Dockerfile

View workflow job for this annotation

GitHub Actions / pull_request_build_test

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "POSTGRES_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ENV POSTGRES_USER=${POSTGRES_USER}
ENV TZ=${TZ}

ARG PROFILE=local

Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# PostgreSQL 인프라 관리 프로젝트

# compose.xml 추가

# Github Acions 추가
Loading