Skip to content

Commit

Permalink
Build multi-stage Docker images for core "aider" and full "aider-full…
Browse files Browse the repository at this point in the history
…" versions
  • Loading branch information
paul-gauthier committed Jul 30, 2024
1 parent bf4d87d commit 4fded18
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
15 changes: 14 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build and push Docker image
- name: Build and push Docker images
uses: docker/build-push-action@v5
with:
context: .
Expand All @@ -51,3 +51,16 @@ jobs:
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/aider:${{ github.ref_name }}
${{ secrets.DOCKERHUB_USERNAME }}/aider:latest
target: aider

- name: Build and push Docker full image
uses: docker/build-push-action@v5
with:
context: .
file: ./docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/aider-full:${{ github.ref_name }}
${{ secrets.DOCKERHUB_USERNAME }}/aider-full:latest
target: aider-full
29 changes: 18 additions & 11 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
FROM python:3.10-slim
FROM python:3.10-slim AS base

RUN apt-get update && \
apt-get install --no-install-recommends -y build-essential git libportaudio2 && \
rm -rf /var/lib/apt/lists/*

WORKDIR /app

FROM base AS aider-full

COPY . /aider
RUN pip install --no-cache-dir /aider[help,browser] --extra-index-url https://download.pytorch.org/whl/cpu && \
rm -rf /aider

# Unfortunately to build the multi-arch docker image we need `build-essential` for amd64.
# Apparently py-tree-sitter-languages doesn't have a pre-built binary wheel?
# Apparently Playwright needs build-essentials too.
ENTRYPOINT ["aider"]

RUN apt-get update && \
apt-get install --no-install-recommends -y build-essential git libportaudio2 && \
rm -rf /var/lib/apt/lists/* && \
pip install --no-cache-dir /aider --extra-index-url https://download.pytorch.org/whl/cpu && \
FROM base AS aider

COPY . /aider
RUN pip install --no-cache-dir /aider --extra-index-url https://download.pytorch.org/whl/cpu && \
rm -rf /aider

WORKDIR /app
ENTRYPOINT ["aider"]

ENTRYPOINT ["aider"]

0 comments on commit 4fded18

Please sign in to comment.