diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index f170ddc6..4413809f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -53,57 +53,9 @@ jobs: with: context: . file: server/Dockerfile - platforms: linux/amd64,linux/arm64 # Build for both Intel and Apple Silicon + platforms: linux/amd64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - - build-and-push-ui: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Docker Hub - if: github.event_name != 'pull_request' - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: galileoai/agent-control-ui - tags: | - # For version tags: v1.2.3 -> 1.2.3, 1.2, 1, latest - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - # For main branch: latest - type=raw,value=latest,enable={{is_default_branch}} - # For branches: branch name (sanitized) - type=ref,event=branch,enable=${{ github.ref != 'refs/heads/main' }} - # For PRs: pr-123 - type=ref,event=pr - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: ui - file: ui/Dockerfile - platforms: linux/amd64,linux/arm64 # Build for both Intel and Apple Silicon - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha,scope=ui-image - cache-to: type=gha,mode=max,scope=ui-image diff --git a/docker-compose.yml b/docker-compose.yml index ffea28f5..d933893a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,6 +36,7 @@ services: restart: unless-stopped server: + platform: linux/amd64 image: galileoai/agent-control-server:latest container_name: agent_control_server ports: @@ -58,14 +59,5 @@ services: condition: service_healthy restart: unless-stopped - ui: - image: galileoai/agent-control-ui:latest - container_name: agent_control_ui - ports: - - "4000:4000" - depends_on: - - server - restart: unless-stopped - volumes: pgdata: diff --git a/ui/Dockerfile b/ui/Dockerfile deleted file mode 100644 index 6fe965e0..00000000 --- a/ui/Dockerfile +++ /dev/null @@ -1,52 +0,0 @@ -# Dockerfile for Agent Control UI -# -# Build from repository root: -# docker build -t agent-control-ui -f ui/Dockerfile ui -# -# Run: -# docker run -p 4000:4000 agent-control-ui - -FROM node:20-alpine AS base - -WORKDIR /app - -ENV PNPM_HOME=/pnpm -ENV PATH=$PNPM_HOME:$PATH - -RUN corepack enable && corepack prepare pnpm@9 --activate - -FROM base AS deps - -COPY package.json pnpm-lock.yaml ./ -RUN pnpm install --frozen-lockfile - -FROM base AS builder - -# Next.js NEXT_PUBLIC_* values are bundled at build time. -ARG NEXT_PUBLIC_API_URL=http://localhost:8000 -ARG NEXT_PUBLIC_AGENT_CONTROL_API_KEY= -ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL -ENV NEXT_PUBLIC_AGENT_CONTROL_API_KEY=$NEXT_PUBLIC_AGENT_CONTROL_API_KEY -ENV NEXT_TELEMETRY_DISABLED=1 - -COPY --from=deps /app/node_modules ./node_modules -COPY . . - -RUN pnpm build && pnpm prune --prod - -FROM base AS runner - -WORKDIR /app - -ENV NODE_ENV=production -ENV NEXT_TELEMETRY_DISABLED=1 -ENV PORT=4000 - -COPY --from=builder /app/package.json ./package.json -COPY --from=builder /app/public ./public -COPY --from=builder /app/.next ./.next -COPY --from=builder /app/node_modules ./node_modules - -EXPOSE 4000 - -CMD ["pnpm", "start", "-p", "4000"]