name: Build and Push Docker Image on: push: branches: - main jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Local Bridge run: | # Очищаем старые контейнеры docker rm -f bridge || true # Создаем туннель localhost:8080 -> Gitea:3000 # Мы используем localhost, чтобы обойти проверку HTTPS docker run -d --name bridge --network host --rm alpine sh -c "apk add socat && socat TCP-LISTEN:8080,fork,reuseaddr TCP:172.17.0.6:3000" sleep 5 - name: Log in to Gitea Registry run: | # Теперь, благодаря LOCAL_ROOT_URL, Gitea пришлет токен по внутреннему адресу echo "${{ secrets.GIT_TOKEN }}" | docker login localhost:8080 -u ${{ secrets.GIT_USERNAME }} --password-stdin - name: Build and Push run: | # Сборка и отправка docker build -t localhost:8080/poignatov/play-life:latest . docker push localhost:8080/poignatov/play-life:latest # Дополнительный тег с SHA коммита docker tag localhost:8080/poignatov/play-life:latest localhost:8080/poignatov/play-life:${{ github.sha }} docker push localhost:8080/poignatov/play-life:${{ github.sha }}