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: Patch DNS for Local Network run: | # Мы говорим системе раннера: "Если ищешь домен, иди на локальный IP Synology" # Это позволит пройти проверку SSL (имя совпадает), но пакеты пойдут по локалке. sudo echo "192.168.50.55 dungeonsiege.synology.me" | sudo tee -a /etc/hosts # Проверка связи (опционально, для отладки) ping -c 2 dungeonsiege.synology.me - name: Log in to Gitea Registry run: | # Логинимся стандартной командой. Она увидит запись в hosts и пойдет на 192.168.50.55 echo "${{ secrets.GIT_TOKEN }}" | docker login dungeonsiege.synology.me -u ${{ secrets.GIT_USERNAME }} --password-stdin - name: Build Image run: | # Собираем обычным способом. Здесь интернет БУДЕТ работать. docker build -t dungeonsiege.synology.me/poignatov/play-life:latest . - name: Push Image run: | # Отправляем образ. Благодаря шагу Patch DNS, он улетит на локальный IP. docker push dungeonsiege.synology.me/poignatov/play-life:latest # Тэгируем версию коммита docker tag dungeonsiege.synology.me/poignatov/play-life:latest dungeonsiege.synology.me/poignatov/play-life:${{ github.sha }} docker push dungeonsiege.synology.me/poignatov/play-life:${{ github.sha }}