Skip to content

Commit

Permalink
Fix dockerfiles
Browse files Browse the repository at this point in the history
  • Loading branch information
jayqi committed Aug 9, 2024
1 parent c2290a5 commit 2fdf926
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 66 deletions.
15 changes: 7 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -120,15 +120,14 @@ build:
## Updates runtime environment lockfile using Docker
update-lockfile:
@echo Generating the lockfile for CPU and GPU within Docker
cd runtime && \
docker build . \
--file Dockerfile-lock \
--build-arg CPU_OR_GPU=${CPU_OR_GPU} \
docker build runtime \
--file runtime/Dockerfile-lock \
--tag pixi-lock:local
@echo Copying lockfile to host
docker create --name dummy pixi-lock:local
docker cp dummy:/tmp/pixi.lock runtime/pixi.lock
docker rm -f dummy
@echo Running lock container
docker run \
--mount type=bind,source="$(shell pwd)"/runtime,target=/tmp \
--rm \
pixi-lock:local

## Ensures that your locally built image can import all the Python packages successfully when it runs
test-container: _check_image _echo_image _submission_write_perms
Expand Down
17 changes: 13 additions & 4 deletions runtime/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,34 @@ ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1 \
SHELL=/bin/bash

# Create user andset permissions
ENV RUNTIME_USER=runtimeuser
ENV RUNTIME_UID=1000
ENV RUNTIME_GID=1000

RUN echo "Creating ${RUNTIME_USER} user..." \
&& groupadd --gid ${RUNTIME_UID} ${RUNTIME_USER} \
&& useradd --create-home --gid ${RUNTIME_UID} --no-log-init --uid ${RUNTIME_UID} ${RUNTIME_USER}

COPY apt.txt apt.txt
RUN apt-get update --fix-missing \
&& apt-get install -y apt-utils 2> /dev/null \
&& xargs -a apt.txt apt-get install -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /apt.txt

COPY --chown=$MAMBA_USER:$MAMBA_USER pixi.lock /tmp/pixi.lock
COPY --chown=$MAMBA_USER:$MAMBA_USER pixi.toml /tmp/pixi.toml
COPY --chown=$RUNTIME_USER:$RUNTIME_USER pixi.lock /tmp/pixi.lock
COPY --chown=$RUNTIME_USER:$RUNTIME_USER pixi.toml /tmp/pixi.toml
RUN pixi install --manifest-path /tmp/pixi.toml -e ${CPU_OR_GPU} && \
pixi clean --manifest-path /tmp/pixi.toml -e ${CPU_OR_GPU}

RUN mkdir /code_execution
RUN chown -R ${MAMBA_USER}:${MAMBA_USER} /code_execution
RUN chown -R ${RUNTIME_USER}:${RUNTIME_USER} /code_execution

COPY tests /code_execution/tests
COPY entrypoint.sh /entrypoint.sh

WORKDIR /code_execution
USER ${MAMBA_USER}
USER ${RUNTIME_USER}

CMD ["bash", "/entrypoint.sh"]
14 changes: 3 additions & 11 deletions runtime/Dockerfile-lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,7 @@ FROM ghcr.io/prefix-dev/pixi:0.26.1-bookworm-slim

USER root

ARG CPU_OR_GPU=gpu

ENV DEBIAN_FRONTEND=noninteractive \
LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
PYTHONUNBUFFERED=1 \
SHELL=/bin/bash

COPY --chown=$MAMBA_USER:$MAMBA_USER pixi.lock /tmp/pixi.lock
COPY --chown=$MAMBA_USER:$MAMBA_USER pixi.toml /tmp/pixi.toml
RUN pixi tree --manifest-path /tmp/pixi.toml --platform linux-64
RUN mkdir -p /tmp
WORKDIR /tmp

ENTRYPOINT ["pixi", "tree", "--manifest-path", "pixi.toml", "--platform", "linux-64", "-v"]
88 changes: 45 additions & 43 deletions runtime/pixi.lock
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.1.0-pyh71513ae_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.3-h28f7589_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.1-hc309b26_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.0-hd590300_0.conda
Expand All @@ -44,7 +44,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/cachetools-5.4.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/catalogue-2.0.10-py310hff52083_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py310h2fdcea3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpathlib-0.16.0-pyhd8ed1ab_0.conda
Expand Down Expand Up @@ -74,7 +74,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/gmpy2-2.1.5-py310hc7909c9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.19.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.32.0-pyhff2d567_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.33.0-pyhff2d567_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-oauthlib-1.0.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-pasta-0.2.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.63.2-pyhd8ed1ab_0.conda
Expand Down Expand Up @@ -211,7 +211,7 @@ environments:
- conda: https://conda.anaconda.org/pytorch/noarch/pytorch-mutex-1.0-cpu.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310h5b4e0ec_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ray-core-2.8.1-py310h2ca9b2b_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ray-default-2.8.1-py310ha1e06c9_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-28.9-h59595ed_1.conda
Expand All @@ -222,7 +222,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-2.0.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.19.1-py310h42e942d_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.20.0-py310h42e942d_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.49-h06160fa_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/sacremoses-0.0.53-pyhd8ed1ab_0.tar.bz2
Expand Down Expand Up @@ -305,7 +305,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.1.0-pyh71513ae_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.3-h28f7589_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.1-hc309b26_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.0-hd590300_0.conda
Expand All @@ -331,7 +331,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/cachetools-5.4.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/catalogue-2.0.10-py310hff52083_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py310h2fdcea3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpathlib-0.16.0-pyhd8ed1ab_0.conda
Expand Down Expand Up @@ -371,7 +371,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/gmpy2-2.1.5-py310hc7909c9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.19.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.32.0-pyhff2d567_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.33.0-pyhff2d567_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-oauthlib-1.0.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/google-pasta-0.2.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.63.2-pyhd8ed1ab_0.conda
Expand Down Expand Up @@ -518,7 +518,7 @@ environments:
- conda: https://conda.anaconda.org/pytorch/noarch/pytorch-mutex-1.0-cuda.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310h5b4e0ec_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ray-core-2.8.1-py310h2ca9b2b_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ray-default-2.8.1-py310ha1e06c9_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-28.9-h59595ed_1.conda
Expand All @@ -529,7 +529,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-2.0.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.19.1-py310h42e942d_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.20.0-py310h42e942d_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.49-h06160fa_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/sacremoses-0.0.53-pyhd8ed1ab_0.tar.bz2
Expand Down Expand Up @@ -755,19 +755,19 @@ packages:
timestamp: 1691763717537
- kind: conda
name: attrs
version: 24.1.0
version: 24.2.0
build: pyh71513ae_0
subdir: noarch
noarch: python
url: https://conda.anaconda.org/conda-forge/noarch/attrs-24.1.0-pyh71513ae_0.conda
sha256: fe47984d3e453c763ff7b4b854837f0bf4fe233a2cd162be82504a19c4ec1457
md5: 1f2d47df5c1127313066a8651fe9288d
url: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda
sha256: 28dba85a7e0f7fb57d7315e13f603d1e41b83c5b88aa2a602596b52c833a2ff8
md5: 6732fa52eb8e66e5afeb32db8701a791
depends:
- python >=3.7
license: MIT
license_family: MIT
size: 56327
timestamp: 1722715555247
size: 56048
timestamp: 1722977241383
- kind: conda
name: aws-c-auth
version: 0.7.3
Expand Down Expand Up @@ -1198,22 +1198,23 @@ packages:
timestamp: 1720458053074
- kind: conda
name: cffi
version: 1.16.0
build: py310h2fee648_0
version: 1.17.0
build: py310h2fdcea3_0
subdir: linux-64
url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda
sha256: 007e7f69ab45553b7bf11f2c1b8d3f3a13fd42997266a0d57795f41c7d38df36
md5: 45846a970e71ac98fd327da5d40a0a2c
url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py310h2fdcea3_0.conda
sha256: 082a0c2aee928cdc4fc41320a61a530d10b4c13c886f0de8f6d57e7daacfc1b1
md5: 6ac912f6208a15d35955ab73a4e5efda
depends:
- __glibc >=2.17,<3.0.a0
- libffi >=3.4,<4.0a0
- libgcc-ng >=12
- pycparser
- python >=3.10,<3.11.0a0
- python_abi 3.10.* *_cp310
license: MIT
license_family: MIT
size: 241339
timestamp: 1696001848492
size: 242409
timestamp: 1723018481932
- kind: conda
name: charset-normalizer
version: 3.3.2
Expand Down Expand Up @@ -1882,13 +1883,13 @@ packages:
timestamp: 1719307111090
- kind: conda
name: google-auth
version: 2.32.0
version: 2.33.0
build: pyhff2d567_0
subdir: noarch
noarch: python
url: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.32.0-pyhff2d567_0.conda
sha256: ed1ba42553e213245f6f5f8cb417996525f10ba7c88b5819de3f521e110bbf5a
md5: 985a17f06e617d6c8dab825a39a39d00
url: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.33.0-pyhff2d567_0.conda
sha256: 4898e99b92a16b4900696dad12d7b201e6940f6cd20fabfe8f0a059fef9f5b87
md5: 5a750d3f2f4bfb378322dda0d8a02018
depends:
- aiohttp >=3.6.2,<4.0.0
- cachetools >=2.0.0,<6.0
Expand All @@ -1901,8 +1902,8 @@ packages:
- rsa >=3.1.4,<5
license: Apache-2.0
license_family: Apache
size: 110849
timestamp: 1720518449305
size: 111747
timestamp: 1723018880178
- kind: conda
name: google-auth-oauthlib
version: 1.0.0
Expand Down Expand Up @@ -4443,22 +4444,22 @@ packages:
timestamp: 1604249020971
- kind: conda
name: pyyaml
version: 6.0.1
build: py310h2372a71_1
build_number: 1
version: 6.0.2
build: py310h5b4e0ec_0
subdir: linux-64
url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda
sha256: aa78ccddb0a75fa722f0f0eb3537c73ee1219c9dd46cea99d6b9eebfdd780f3d
md5: bb010e368de4940771368bc3dc4c63e7
url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310h5b4e0ec_0.conda
sha256: e7b3d6ee96fedc29b49a3705401765743082e79ea9f6359fdc6d3a2245fd6747
md5: ad8de7b4ac482217959cc1e8fe0cc56d
depends:
- __glibc >=2.17,<3.0.a0
- libgcc-ng >=12
- python >=3.10,<3.11.0a0
- python_abi 3.10.* *_cp310
- yaml >=0.2.5,<0.3.0a0
license: MIT
license_family: MIT
size: 170627
timestamp: 1695373587159
size: 181235
timestamp: 1723018382019
- kind: conda
name: ray-core
version: 2.8.1
Expand Down Expand Up @@ -4665,12 +4666,12 @@ packages:
timestamp: 1709150578093
- kind: conda
name: rpds-py
version: 0.19.1
version: 0.20.0
build: py310h42e942d_0
subdir: linux-64
url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.19.1-py310h42e942d_0.conda
sha256: bded054638611b028d354b581d70e4353be5f4bd43a331c2d9bb829f80a18f1b
md5: e475e081b969944abf635b7484b8661e
url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.20.0-py310h42e942d_0.conda
sha256: 77a800f5a37bcaefad09b46b19f2d17357bc46eff7514f8db570c885e9369477
md5: 825361e63187e65a9da05a8b4274a0e1
depends:
- __glibc >=2.17,<3.0.a0
- libgcc-ng >=12
Expand All @@ -4680,8 +4681,8 @@ packages:
- __glibc >=2.17
license: MIT
license_family: MIT
size: 331102
timestamp: 1721861153079
size: 334195
timestamp: 1723039241464
- kind: conda
name: rsa
version: '4.9'
Expand Down Expand Up @@ -4749,6 +4750,7 @@ packages:
constrains:
- __glibc >=2.17
license: Apache-2.0
license_family: APACHE
size: 400960
timestamp: 1722937971905
- kind: conda
Expand Down

0 comments on commit 2fdf926

Please sign in to comment.