FROM rockylinux/rockylinux:8-ubi-init as rocky8-base
LABEL maintainer="Robert Cowham <[email protected]>"
RUN dnf update -y; \
dnf install -y bc; \
dnf install -y cronie; \
dnf install -y curl; \
dnf install -y diffutils; \
dnf install -y file; \
dnf install -y findutils; \
dnf install -y perl; \
dnf install -y procps-ng; \
dnf install -y rsync; \
dnf install -y sudo; \
dnf install -y tar; \
dnf install -y which; \
dnf install -y wget; \
dnf install -y vim
RUN dnf install -y openssh-server openssh-clients passwd; \
dnf clean all; \
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''; \
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
# ====================================================
FROM rocky8-base as rocky8-sdp
LABEL maintainer="Robert Cowham <[email protected]>"
ADD setup_container.sh /tmp
RUN /bin/bash -x /tmp/setup_container.sh
ADD insecure_ssh_key.pub /tmp
ADD insecure_ssh_key /tmp
ADD setup_ssh.sh /tmp
RUN /bin/bash -x /tmp/setup_ssh.sh
# For SSH
EXPOSE 22
RUN echo "Setting default memory limit..." && \
sh -c 'echo memory.limit=2048m >> /etc/systemd/system.conf'
# Recommend resource allocation at runtime
RUN echo "For optimal performance, consider running the container with --cpus=2 --memory=2g --storage-opt size=20G"
USER perforce
ADD files/reset_sdp.sh /p4/
ADD files/docker_entry.sh /p4/
ADD files/test_sdp.sh /p4/
ADD files/test_mkrep.sh /p4/
# From package.perforce.com:
ADD files/perforce.rhel8.repo /tmp
RUN sudo rpm --import https://package.perforce.com/perforce.pubkey
RUN sudo cp -f /tmp/perforce.rhel8.repo /etc/yum.repos.d/perforce.repo
RUN bash -lc 'curl -LsSf https://astral.sh/uv/install.sh | sh && \
export PATH="$HOME/.local/bin:$PATH" && \
uv python install 3.14 && \
uv venv --python 3.14 "$HOME/.venv" && \
. "$HOME/.venv/bin/activate" && \
uv pip install pytest-testinfra p4python'
USER root
CMD ["/sbin/init"]