From 1cda9aa5f532653409d71c916c1c8699c975df20 Mon Sep 17 00:00:00 2001 From: xintaofei Date: Sun, 29 Mar 2026 19:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84docker=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 13 +++++++++++++ .github/workflows/release.yml | 12 ++++++++++++ Dockerfile | 10 ++++++---- docker-compose.yml | 5 +++++ 4 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8f6a231 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,13 @@ +node_modules/ +.next/ +out/ +target/ +src-tauri/target/ +.git/ +*.md +LICENSE +.github/ +docs/ +.vscode/ +.idea/ +*.log diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bfa96eb..3bb3836 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -342,6 +342,9 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Set up QEMU (for multi-arch builds) + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -352,6 +355,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Extract version from tag id: version run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" @@ -360,10 +369,13 @@ jobs: uses: docker/build-push-action@v6 with: context: . + platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/${{ github.repository }}:${{ steps.version.outputs.version }} ghcr.io/${{ github.repository }}:latest + ${{ secrets.DOCKERHUB_USERNAME }}/codeg:${{ steps.version.outputs.version }} + ${{ secrets.DOCKERHUB_USERNAME }}/codeg:latest cache-from: type=gha cache-to: type=gha,mode=max diff --git a/Dockerfile b/Dockerfile index 5e32873..36856fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,14 +4,16 @@ RUN corepack enable WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile -COPY . . +COPY src/ ./src/ +COPY public/ ./public/ +COPY next.config.ts tsconfig.json postcss.config.mjs components.json ./ RUN pnpm build # Stage 2: Build Rust server binary -FROM rust:1.82-bookworm AS backend -WORKDIR /app -COPY src-tauri/ ./src-tauri/ +FROM rust:slim-bookworm AS backend +RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/* WORKDIR /app/src-tauri +COPY src-tauri/ ./ RUN cargo build --release --bin codeg-server --no-default-features # Stage 3: Runtime diff --git a/docker-compose.yml b/docker-compose.yml index 6565f77..735a0fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,19 @@ services: codeg: build: . + # Or use a pre-built image: + # image: xintaofei/codeg:latest ports: - "3080:3080" volumes: - codeg-data:/data + # Mount your project directories (optional): + # - /path/to/projects:/projects environment: - CODEG_TOKEN=${CODEG_TOKEN:-} - CODEG_PORT=3080 - CODEG_HOST=0.0.0.0 + restart: unless-stopped volumes: codeg-data: