FROM ubuntu:latest ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive ARG SECRETS_FILE=tests/.secrets ARG CONFIG_FILE=tests/.env.docker ARG GO_LIBRARY=go1.21.13.linux-${TARGETARCH}.tar.gz ARG MC_FOLDER=linux-${TARGETARCH} ENV TZ=Etc/UTC # Create tester user RUN groupadd -r tester && useradd -r -g tester tester RUN mkdir /home/tester && chown tester:tester /home/tester ENV HOME=/home/tester WORKDIR /home/tester USER tester COPY --chown=tester:tester . /home/tester USER root RUN INSTALL_MC=true /home/tester/tests/install_base_dependencies.sh WORKDIR /tmp RUN update-ca-certificates && rm -rf /var/lib/apt/lists/* # Create a shared venv & install Python deps there ENV VENV=/opt/venv RUN python3 -m venv "$VENV" \ && "$VENV/bin/python" -m pip install --upgrade pip \ && "$VENV/bin/pip" install --no-cache-dir awscrt # Make the venv the default Python for all subsequent RUN/CMD/ENTRYPOINT ENV PATH="$VENV/bin:${PATH}" WORKDIR /home/tester RUN make USER tester RUN . $SECRETS_FILE && \ export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_REGION AWS_PROFILE && \ aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile $AWS_PROFILE && \ aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile $AWS_PROFILE && \ aws configure set aws_region $AWS_REGION --profile $AWS_PROFILE RUN mkdir /tmp/gw RUN openssl genpkey -algorithm RSA -out versitygw-docker.pem -pkeyopt rsa_keygen_bits:2048 && \ openssl req -new -x509 -key versitygw-docker.pem -out cert-docker.pem -days 365 \ -subj "/C=US/ST=California/L=San Francisco/O=Versity/OU=Software/CN=versity.com" RUN mkdir config log && cp $CONFIG_FILE config/.env ENV WORKSPACE=. ENV VERSITYGW_TEST_ENV=/home/tester/config/.env ENTRYPOINT ["tests/run.sh"] CMD ["s3api,s3,s3cmd,mc,rest"]