add cuda dockerfile
This commit is contained in:
171
.github/workflows/docker-image.yml
vendored
171
.github/workflows/docker-image.yml
vendored
@@ -110,54 +110,6 @@ jobs:
|
|||||||
${{ steps.meta-ee-public.outputs.labels }}
|
${{ steps.meta-ee-public.outputs.labels }}
|
||||||
org.opencontainers.image.licenses=Windmill-Enterprise-License
|
org.opencontainers.image.licenses=Windmill-Enterprise-License
|
||||||
|
|
||||||
build_ee_cuda:
|
|
||||||
runs-on: ubicloud
|
|
||||||
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
# - name: Set up Docker Buildx
|
|
||||||
# uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- uses: depot/setup-action@v1
|
|
||||||
|
|
||||||
- name: Docker meta
|
|
||||||
id: meta-ee-public
|
|
||||||
uses: docker/metadata-action@v4
|
|
||||||
with:
|
|
||||||
images: |
|
|
||||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee
|
|
||||||
flavor: |
|
|
||||||
latest=false
|
|
||||||
tags: |
|
|
||||||
type=ref,event=pr
|
|
||||||
type=semver,pattern={{version}}
|
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
|
||||||
|
|
||||||
- name: Login to registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ${{ env.REGISTRY }}
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push publicly ee
|
|
||||||
uses: depot/build-push-action@v1
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
platforms: linux/amd64
|
|
||||||
push: true
|
|
||||||
build-args: |
|
|
||||||
features=enterprise
|
|
||||||
PYTHON_IMAGE=nvidia/cuda:12.2.2-base-ubuntu22.04
|
|
||||||
tags: |
|
|
||||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee-cuda:main
|
|
||||||
${{ steps.meta-ee-public.outputs.tags }}
|
|
||||||
labels: |
|
|
||||||
${{ steps.meta-ee-public.outputs.labels }}
|
|
||||||
org.opencontainers.image.licenses=Windmill-Enterprise-License
|
|
||||||
|
|
||||||
build_ee_reports_privately:
|
build_ee_reports_privately:
|
||||||
needs: [build_ee]
|
needs: [build_ee]
|
||||||
runs-on: ubicloud
|
runs-on: ubicloud
|
||||||
@@ -281,49 +233,49 @@ jobs:
|
|||||||
${{ steps.extract.outputs.destination }}/*
|
${{ steps.extract.outputs.destination }}/*
|
||||||
${{ steps.extract-ee.outputs.destination }}/*
|
${{ steps.extract-ee.outputs.destination }}/*
|
||||||
|
|
||||||
attach_arm64_binary_to_release:
|
# attach_arm64_binary_to_release:
|
||||||
needs: [build, build_ee]
|
# needs: [build, build_ee]
|
||||||
runs-on: ubicoud
|
# runs-on: ubicoud
|
||||||
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||||
env:
|
# env:
|
||||||
ARCH: arm64
|
# ARCH: arm64
|
||||||
steps:
|
# steps:
|
||||||
- uses: actions/checkout@v3
|
# - uses: actions/checkout@v3
|
||||||
|
|
||||||
- run: |
|
# - run: |
|
||||||
# pulling docker image with desired arch so that actions-docker-extract doesn't do it
|
# # pulling docker image with desired arch so that actions-docker-extract doesn't do it
|
||||||
docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
# docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
||||||
docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
# docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
||||||
|
|
||||||
- run: |
|
# - run: |
|
||||||
# Checks the image is in docker prior to running actions-docker-extract. It fails if not
|
# # Checks the image is in docker prior to running actions-docker-extract. It fails if not
|
||||||
# Also useful to visually check that the arch is the right opencontainers
|
# # Also useful to visually check that the arch is the right opencontainers
|
||||||
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
# docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
||||||
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
# docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
||||||
|
|
||||||
- uses: shrink/actions-docker-extract@v3
|
# - uses: shrink/actions-docker-extract@v3
|
||||||
id: extract
|
# id: extract
|
||||||
with:
|
# with:
|
||||||
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
# image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
||||||
path: "/usr/src/app/windmill"
|
# path: "/usr/src/app/windmill"
|
||||||
|
|
||||||
- uses: shrink/actions-docker-extract@v3
|
# - uses: shrink/actions-docker-extract@v3
|
||||||
id: extract-ee
|
# id: extract-ee
|
||||||
with:
|
# with:
|
||||||
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
# image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
||||||
path: "/usr/src/app/windmill"
|
# path: "/usr/src/app/windmill"
|
||||||
|
|
||||||
- name: Rename binary with corresponding architecture
|
# - name: Rename binary with corresponding architecture
|
||||||
run: |
|
# run: |
|
||||||
mv "${{ steps.extract.outputs.destination }}/windmill" "${{ steps.extract.outputs.destination }}/windmill-${ARCH}"
|
# mv "${{ steps.extract.outputs.destination }}/windmill" "${{ steps.extract.outputs.destination }}/windmill-${ARCH}"
|
||||||
mv "${{ steps.extract-ee.outputs.destination }}/windmill" "${{ steps.extract-ee.outputs.destination }}/windmill-ee-${ARCH}"
|
# mv "${{ steps.extract-ee.outputs.destination }}/windmill" "${{ steps.extract-ee.outputs.destination }}/windmill-ee-${ARCH}"
|
||||||
|
|
||||||
- name: Attach binary to release
|
# - name: Attach binary to release
|
||||||
uses: softprops/action-gh-release@v1
|
# uses: softprops/action-gh-release@v1
|
||||||
with:
|
# with:
|
||||||
files: |
|
# files: |
|
||||||
${{ steps.extract.outputs.destination }}/*
|
# ${{ steps.extract.outputs.destination }}/*
|
||||||
${{ steps.extract-ee.outputs.destination }}/*
|
# ${{ steps.extract-ee.outputs.destination }}/*
|
||||||
|
|
||||||
publish_ecr_s3:
|
publish_ecr_s3:
|
||||||
needs: [build_ee]
|
needs: [build_ee]
|
||||||
@@ -432,3 +384,52 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest
|
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest
|
||||||
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:main
|
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:main
|
||||||
|
|
||||||
|
build_ee_cuda:
|
||||||
|
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||||
|
needs: [build_ee]
|
||||||
|
runs-on: ubicloud
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
# - name: Set up Docker Buildx
|
||||||
|
# uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
|
- uses: depot/setup-action@v1
|
||||||
|
|
||||||
|
- name: Docker meta
|
||||||
|
id: meta-ee-public
|
||||||
|
uses: docker/metadata-action@v4
|
||||||
|
with:
|
||||||
|
images: |
|
||||||
|
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee-cuda
|
||||||
|
flavor: |
|
||||||
|
latest=false
|
||||||
|
tags: |
|
||||||
|
type=ref,event=pr
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
|
||||||
|
- name: Login to registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ${{ env.REGISTRY }}
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build and push publicly ee
|
||||||
|
uses: depot/build-push-action@v1
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
build-args: |
|
||||||
|
features=enterprise,enterprise_saml,stripe
|
||||||
|
nsjail=true
|
||||||
|
tags: |
|
||||||
|
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
|
||||||
|
${{ steps.meta-ee-public.outputs.tags }}
|
||||||
|
labels: |
|
||||||
|
${{ steps.meta-ee-public.outputs.labels }}
|
||||||
|
org.opencontainers.image.licenses=Windmill-Enterprise-License
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ pub const EXPOSE_DEBUG_METRICS_SETTING: &str = "expose_debug_metrics";
|
|||||||
pub const KEEP_JOB_DIR_SETTING: &str = "keep_job_dir";
|
pub const KEEP_JOB_DIR_SETTING: &str = "keep_job_dir";
|
||||||
pub const REQUIRE_PREEXISTING_USER_FOR_OAUTH_SETTING: &str = "require_preexisting_user_for_oauth";
|
pub const REQUIRE_PREEXISTING_USER_FOR_OAUTH_SETTING: &str = "require_preexisting_user_for_oauth";
|
||||||
|
|
||||||
pub const ENV_SETTINGS: [&str; 55] = [
|
pub const ENV_SETTINGS: [&str; 54] = [
|
||||||
"DISABLE_NSJAIL",
|
"DISABLE_NSJAIL",
|
||||||
"MODE",
|
"MODE",
|
||||||
"NUM_WORKERS",
|
"NUM_WORKERS",
|
||||||
|
|||||||
27
docker/DockerfileCuda
Normal file
27
docker/DockerfileCuda
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
FROM ghcr.io/windmill-labs/windmill-ee:dev
|
||||||
|
|
||||||
|
# Install any necessary dependencies for managing repositories and packages
|
||||||
|
RUN apt-get update && apt-get install -y curl gnupg2
|
||||||
|
|
||||||
|
RUN curl "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb" -o cuda.deb && \
|
||||||
|
dpkg -i cuda.deb && rm cuda.deb
|
||||||
|
|
||||||
|
RUN apt-get update -y && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
cuda-cudart-12-2 cuda-nvcc-12-2 cuda-nvrtc-12-2 \
|
||||||
|
libcudnn8 libcublas-12-2 && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install FFmpeg if needed
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y ffmpeg && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
# Make sure the PyTorch version is compatible with the installed CUDA version
|
||||||
|
|
||||||
|
# Set necessary environment variables for CUDA libraries (if needed)
|
||||||
|
ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
|
||||||
|
ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64
|
||||||
|
ENV NVIDIA_VISIBLE_DEVICES=all
|
||||||
|
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
FROM "ghcr.io/windmill-labs/windmill-ee:main"
|
|
||||||
|
|
||||||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
|
|
||||||
|
|
||||||
RUN curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list
|
|
||||||
|
|
||||||
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql18 unixodbc-dev libgssapi-krb5-2
|
|
||||||
|
|
||||||
RUN ACCEPT_EULA=Y apt-get install -y mssql-tools18
|
|
||||||
ENV PATH="$PATH:/opt/mssql-tools18/bin"
|
|
||||||
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
FROM ghcr.io/windmill-labs/windmill-ee:main
|
|
||||||
|
|
||||||
|
|
||||||
RUN apt update
|
|
||||||
RUN apt install npm -y
|
|
||||||
RUN mkdir -p /etc/apt/keyrings
|
|
||||||
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
|
||||||
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
|
|
||||||
RUN apt-get update -y
|
|
||||||
RUN apt install nodejs libnss3-dev libatk1.0-0 libatk-bridge2.0-0 libcups2-dev libdrm-dev libxkbcommon-dev libxcomposite-dev libxdamage-dev libxrandr-dev\
|
|
||||||
libgbm-dev libpango-1.0 libcairo-dev libasound-dev -y
|
|
||||||
RUN npm install -g puppeteer -y
|
|
||||||
|
|
||||||
CMD ["windmill"]
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM ghcr.io/windmill-labs/windmill-ee:main
|
FROM ghcr.io/windmill-labs/windmill-ee:dev
|
||||||
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install -y chromium
|
RUN apt-get install -y chromium
|
||||||
Reference in New Issue
Block a user