| name: Docker Compose Build Latest Main Image Tag (Manual Dispatch) |
|
|
| on: |
| workflow_dispatch: |
|
|
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| include: |
| - target: api-build |
| file: Dockerfile.multi |
| image_name: librechat-api |
| - target: node |
| file: Dockerfile |
| image_name: librechat |
|
|
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
|
|
| - name: Fetch tags and set the latest tag |
| run: | |
| git fetch --tags |
| echo "LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_ENV |
| |
| |
| - name: Set up QEMU |
| uses: docker/setup-qemu-action@v3 |
|
|
| |
| - name: Set up Docker Buildx |
| uses: docker/setup-buildx-action@v3 |
|
|
| |
| - name: Log in to GitHub Container Registry |
| uses: docker/login-action@v2 |
| with: |
| registry: ghcr.io |
| username: ${{ github.actor }} |
| password: ${{ secrets.GITHUB_TOKEN }} |
|
|
| |
| - name: Login to Docker Hub |
| uses: docker/login-action@v3 |
| with: |
| username: ${{ secrets.DOCKERHUB_USERNAME }} |
| password: ${{ secrets.DOCKERHUB_TOKEN }} |
|
|
| |
| - name: Prepare environment |
| run: | |
| cp .env.example .env |
| |
| |
| - name: Build and push Docker images |
| uses: docker/build-push-action@v5 |
| with: |
| context: . |
| file: ${{ matrix.file }} |
| push: true |
| tags: | |
| ghcr.io/${{ github.repository_owner }}/${{ matrix.image_name }}:${{ env.LATEST_TAG }} |
| ghcr.io/${{ github.repository_owner }}/${{ matrix.image_name }}:latest |
| ${{ secrets.DOCKERHUB_USERNAME }}/${{ matrix.image_name }}:${{ env.LATEST_TAG }} |
| ${{ secrets.DOCKERHUB_USERNAME }}/${{ matrix.image_name }}:latest |
| platforms: linux/amd64,linux/arm64 |
| target: ${{ matrix.target }} |
|
|