Files
versitygw/tests/Dockerfile_test_bats
T

60 lines
1.8 KiB
Plaintext

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"]