Skip to content

Commit

Permalink
Merge pull request #8 from articulate/feat/pytorch-image
Browse files Browse the repository at this point in the history
  • Loading branch information
ahodges22 authored Jun 13, 2024
2 parents b11ebb8 + e187ebd commit f29c237
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 1 deletion.
5 changes: 4 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,12 @@ jobs:
id: meta
run: |
tags=$(grep "tags=" ${{ matrix.dockerfile }} | cut -d "=" -f 2)
platforms=$(grep "platforms=" ${{ matrix.dockerfile }} | cut -d "=" -f 2)
[ -z "$platforms" ] && platforms="linux/amd64,linux/arm64"
echo "context=$(dirname "${{ matrix.dockerfile }}")" >> "$GITHUB_OUTPUT"
echo "tags=${tags}" >> "$GITHUB_OUTPUT"
echo "cache=$(echo "$tags" | cut -d "," -f 1)" >> "$GITHUB_OUTPUT"
echo "platforms=${platforms}" >> "$GITHUB_OUTPUT"
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
Expand All @@ -53,7 +56,7 @@ jobs:
pull: ${{ github.event_name != 'pull_request' }}
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64/v8
platforms: ${{ steps.meta.outputs.platforms }}
cache-from: type=registry,ref=${{ steps.meta.outputs.cache }}
cache-to: type=inline
no-cache: ${{ github.event.schedule == '0 0 * * 0' || (github.event_name == 'workflow_dispatch' && inputs.no-cache) }}
Expand Down
File renamed without changes.
42 changes: 42 additions & 0 deletions 3.12/pytorch/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# tags=articulate/python:3.12-pytorch
# platforms=linux/amd64
# syntax=docker/dockerfile:1
FROM python:3.12-slim-bookworm

ENV SERVICE_ROOT /service
ENV SERVICE_USER service
ENV SERVICE_UID 1001

ARG TARGETARCH

ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/install_packages /usr/local/bin/install_packages
ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/awscli.sh /tmp/awscli.sh

RUN install_packages make dumb-init && /tmp/awscli.sh && rm /tmp/awscli.sh \
&& groupadd --gid $SERVICE_UID $SERVICE_USER \
&& useradd --create-home --shell /bin/bash --gid $SERVICE_UID --uid $SERVICE_UID $SERVICE_USER

ADD --chmod=755 https://github.com/articulate/docker-bootstrap/releases/latest/download/docker-bootstrap_linux_${TARGETARCH} /entrypoint
ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/docker-secrets /usr/local/bin/secrets
ADD --chmod=755 https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh /wait-for-it.sh

# Environment variables for PyTorch version and CUDA version
# Set build arguments for PyTorch version
ENV PYTORCH_VERSION=2.3.1
ENV TORCHVISION_VERSION=0.18.1
ENV CUDA_VERSION=12.1

# Install PyTorch
# Added to satisfy linter
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN CUDA_VERSION_SANITIZED="$(echo $CUDA_VERSION | tr -d '.')" \
&& pip install --no-cache-dir torch=="${PYTORCH_VERSION}" torchaudio=="${PYTORCH_VERSION}" torchvision=="${TORCHVISION_VERSION}" \
--index-url "https://download.pytorch.org/whl/cu${CUDA_VERSION_SANITIZED}"

USER $SERVICE_USER
WORKDIR $SERVICE_ROOT

# Our entrypoint will pull in our environment variables from Consul and Vault,
# and execute whatever command we provided the container.
# See https://github.com/articulate/docker-bootstrap
ENTRYPOINT [ "dumb-init", "--", "/entrypoint" ]
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Base Python Docker images.
> 🌟 recommended image
* __articulate/python:3.12__ 🌟
* articulate/python:3.12-pytorch
* articulate/python:3.11

## Creating a new image
Expand Down

0 comments on commit f29c237

Please sign in to comment.