FROM nvidia/cuda:12.0.0-cudnn8-devel-ubuntu22.04 # Using the Ubuntu image (our OS) # Update package manager (apt-get) # and install (with the yes flag `-y`) # Python and Pip RUN apt-get update && apt-get install -y \ python3-pip \ unzip \ jq \ curl \ wget WORKDIR /code COPY ./requirements.txt /code/requirements.txt RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt # Set up a new user named "user" with user ID 1000 RUN useradd -m -u 1000 user # Switch to the "user" user USER user # Set home to the user's home directory ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH # Set the working directory to the user's home directory WORKDIR $HOME/app # Download and unzip truepic-sign from Dropbox RUN --mount=type=secret,id=truepic_sign_dropbox_url,mode=0444,required=true \ wget -O truepic-lens-cli-51f4cfbc6472a2205e53d726713619ca8df5340b-ubuntu-20.04.zip $(cat /run/secrets/truepic_sign_dropbox_url) RUN unzip truepic-lens-cli-51f4cfbc6472a2205e53d726713619ca8df5340b-ubuntu-20.04.zip RUN tar -xf truepic-lens-cli-51f4cfbc6472a2205e53d726713619ca8df5340b-ubuntu-20.04.tar.gz RUN chmod +x truepic RUN --mount=type=secret,id=api_key,mode=0444,required=true \ ./truepic enroll file-system --api-key $(cat /run/secrets/api_key) --profile truepic RUN --mount=type=secret,id=steg_profile_api_key,mode=0444,required=true \ ./truepic enroll file-system --api-key $(cat /run/secrets/steg_profile_api_key) --profile steg # Copy the current directory contents into the container at $HOME/app setting the owner to the user COPY --chown=user . $HOME/app WORKDIR $HOME/app RUN chmod +x scripts/sign.sh RUN chmod +x scripts/verify.sh RUN chmod +x scripts/upload.sh RUN chmod +w scripts/sign.sh RUN chmod +w scripts/verify.sh RUN chmod +w scripts/upload.sh CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]