From 0028ca99d79e411df8b63b9a8eb4f9f8954821b1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 21 Jun 2025 13:37:42 +0300 Subject: [PATCH] init docker --- .github/workflows/build.yml | 101 ++++++++++++++++++++++++------------ docker-compose.yaml | 0 docker/Dockerfile | 10 ++++ 3 files changed, 78 insertions(+), 33 deletions(-) create mode 100644 docker-compose.yaml create mode 100644 docker/Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8a81736..562096f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,9 +9,9 @@ on: workflow_dispatch: jobs: - build-ubuntu: - permissions: - contents: write + build: + # permissions: + # contents: write runs-on: ubuntu-latest steps: - name: Checkout @@ -32,34 +32,69 @@ jobs: mv dist/* ../api/web - name: Build server for linux working-directory: ./apps/api - run: | - GOOS=linux go build -v -o ./yabl-linux-x86_64 . - GOOS=darwin go build -v -o ./yabl-darwin-x86_64 . - GOOS=windows go build -v -o ./yabl-windows-x86_64.exe . - - name: upload linux artifact - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ github.token }} + run: GOOS=linux go build -ldflags="-s -w" --tags=fts5 -v -o ./yabl . + - name: Build book-reaper for linux + working-directory: ./apps/book-reaper + run: GOOS=linux go build -ldflags="-s -w" --tags=fts5 -v -o ./book-reaper . + - name: Upload build artifacts + uses: actions/upload-artifact@v3 with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./yabl-linux-x86_64 - asset_name: server-linux - asset_content_type: application/octet-stream - - name: upload darwin artifact - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ github.token }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./yabl-darwin-x86_64 - asset_name: yabl-darwin-x86_64 - asset_content_type: application/octet-stream - - name: upload windows artifact - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ github.token }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./yabl-windows-x86_64.exe - asset_name: yabl-windows-x86_64.exe - asset_content_type: application/octet-stream + name: build-binaries + path: | + apps/api/yabl + apps/book-reaper/book-reaper + + # echo BUILD FOR DARWIN + # GOOS=darwin go build -v -o ./yabl-darwin-x86_64 . + # echo BUILD FOR WINDOWS + # GOOS=windows go build -v -o ./yabl-windows-x86_64.exe . + # echo done + # - name: upload linux artifact + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ github.token }} + # with: + # upload_url: ${{ github.event.release.upload_url }} + # asset_path: ./yabl-linux-x86_64 + # asset_name: server-linux + # asset_content_type: application/octet-stream + # - name: upload darwin artifact + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ github.token }} + # with: + # upload_url: ${{ github.event.release.upload_url }} + # asset_path: ./yabl-darwin-x86_64 + # asset_name: yabl-darwin-x86_64 + # asset_content_type: application/octet-stream + # - name: upload windows artifact + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ github.token }} + # with: + # upload_url: ${{ github.event.release.upload_url }} + # asset_path: ./yabl-windows-x86_64.exe + # asset_name: yabl-windows-x86_64.exe + # asset_content_type: application/octet-stream + publish-docker: + runs-on: ubuntu-latest + needs: [build] + + steps: + - uses: actions/checkout@v3 + - name: Download build artifacts + uses: actions/download-artifact@v3 + with: + name: build-binaries + path: ./build + - name: Build Docker image + run: | + docker build -t git.mi6e4ka.dev/YaBL:latest -f ./docker/Dockerfile . + - name: Login to local Docker registry + run: | + echo ${{ secrets.REGISTRY_PASSWORD }} | docker login git.mi6e4ka.dev \ + --username ${{ secrets.REGISTRY_USERNAME }} \ + --password-stdin + - name: Push image + run: | + docker push git.mi6e4ka.dev/YaBL:latest diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..e69de29 diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..6f88439 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,10 @@ +FROM alpine:3.22 + +WORKDIR /app + +COPY ./build/yabl /app/yabl +COPY ./build/book-reaper /app/book-reaper + +RUN chmod +x /app/yabl /app/book-reaper + +ENTRYPOINT ["/app/yabl"] \ No newline at end of file