Create README.md #9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: deploy service | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - deploy/* | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| # repoμμ μμ€μ½λ 볡μ¬(checkout) | |
| - name: Checkout Project | |
| uses: actions/checkout@v4 | |
| - name: Use Cache for Build Image Layer Save | |
| uses: actions/[email protected] | |
| with: | |
| path: /tmp/.build-cache | |
| key: docker-image-cache-${{ github.sha }} | |
| restore-keys: docker-image-cache- | |
| - name: Create .env file | |
| run: echo """${{ secrets.ENV_FILE }}""" >> .env | |
| - name: Add ssh-agent | |
| uses: webfactory/[email protected] | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| - name: Add Remote Server FingerPrint to Know Hosts | |
| run: ssh-keyscan -H -p ${{secrets.SSH_PORT}} ${{secrets.SSH_HOST}} >> ~/.ssh/known_hosts || true | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Create BuildKit Builder | |
| run: | | |
| docker buildx create --use --name buildkit | |
| docker buildx use buildkit | |
| - name: Login DockerHub | |
| run: echo '${{ secrets.DOCKER_PASSWORD }}' | docker login -u '${{ secrets.DOCKER_USERNAME }}' --password-stdin | |
| - name: Docker Image Build | |
| run: docker compose build --build-arg BUILDKIT_INLINE_CACHE=1 | |
| - name: Docker Image Push | |
| run: docker compose push | |
| - name: Create work directory on EC2 | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.SSH_HOST }} | |
| username: ${{ secrets.SSH_USERNAME }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| port: ${{ secrets.SSH_PORT }} | |
| script: | | |
| echo "Current directory: $(pwd)" | |
| mkdir -p ~/work-directory | |
| - name: Copy .env and docker-compose.yml Into EC2 | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.SSH_HOST }} | |
| username: ${{ secrets.SSH_USERNAME }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| port: ${{ secrets.SSH_PORT }} | |
| source: "docker-compose.yml, .env" | |
| target: "~/work-directory" | |
| ## EC2λ΄μ μνν μμ | |
| - name: Pull Image from Docker Hub | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.SSH_HOST }} | |
| username: ${{ secrets.SSH_USERNAME }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| port: ${{ secrets.SSH_PORT }} | |
| script: | | |
| cd ~/work-directory | |
| docker compose pull | |
| - name: UP Containers | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.SSH_HOST }} | |
| username: ${{ secrets.SSH_USERNAME }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| port: ${{ secrets.SSH_PORT }} | |
| script: | | |
| cd ~/work-directory | |
| docker compose down | |
| docker compose up -d | |
| docker system prune -f |