name: Build and Deploy on: push: branches: - main env: REGISTRY: localhost:9999 IMAGE_NAME: ${{ secrets.PROJECT_NAME }} jobs: build_and_deploy: runs-on: ubuntu-latest # Sesuaikan dengan label di compose container: image: catthehacker/ubuntu:act-latest # PENTING: Mounting socket ke dalam container job agar bisa akses Docker Host volumes: - /var/run/docker.sock:/var/run/docker.sock steps: - uses: actions/checkout@v4 - name: Setup Environment run: | echo "${{ secrets.ENV_FILE }}" > .env - name: Build Image run: | # Menggunakan --network host agar bisa akses registry di localhost:9999 docker build --network host -t $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} . - name: Push Image run: | # Push ke local registry docker push $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} - name: Deploy run: | # Hapus container lama jika ada docker stop $IMAGE_NAME || true docker rm $IMAGE_NAME || true # Jalankan container baru di Docker Host docker run -d \ --name $IMAGE_NAME \ --memory="64m" \ --cpus="0.1" \ --restart always \ -p 9997:3000 \ $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} - name: Cleanup if: always() run: | docker image prune -f