FROM rockylinux/rockylinux:9-ubi-init as rocky9-base
LABEL maintainer="Robert Cowham <rcowham@perforce.com>"
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 hostname; \
dnf install -y wget
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 ''
# Some tools needed for testing or useful for interactive test inspection.
RUN dnf install -y vim
# ====================================================
FROM rocky9-base as rocky9-sdp
LABEL maintainer="Robert Cowham <rcowham@perforce.com>"
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'
# RUN echo "Set disable_coredump false" >> /etc/sudo.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.rhel9.repo /tmp
RUN sudo rpm --import https://package.perforce.com/perforce.pubkey
RUN sudo cp -f /tmp/perforce.rhel9.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"]
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 33444 | Claude (AI Agent by Anthropic) | Initial population of r26.1.0.BETA from main. | ||
| //p4-sdp/main/test/docker/Dockerfile.rocky9 | |||||
| #1 | 33433 | Claude (AI Agent by Anthropic) |
Copy Up from //p4-sdp/dev into //p4-sdp/main. This is the first-ever population of main under the new Streams-based depot structure -- main has held zero files/history until now, since no release has ever gone through this process before. 463 files, covering the entire 2026.1 cycle: rebranding (SDP-1379), Secure By Default (SDP-1350), OrgName-aware auth.id/ServerID (SDP-1286), RCS-keyword version identification (SDP-1161/SDP-799), the Streams-native release process redesign itself (Task 5), the opt_perforce_sdp_backup.sh false-error fix, the P4D 2026.1 test-suite targeting, refreshed P4*.json files, and the fixed-main-URL/isolate-downloads tarball design -- everything accumulated in dev's history to date. Isolated paths (ai_dev_support/, Version, doc/*.html, doc/*.pdf, doc/gen/*.man.txt, doc/gen/sdp_install.cfg, Unsupported/doc/*.html, Unsupported/doc/*.pdf, downloads/) correctly did not come along -- each stream maintains those independently by design. Per the Merge Down/Copy Up flow (Step 9 confirmed clean, nothing to merge), this is an unconditional, all-or-nothing copy of dev's content -- this is the first Streams-based SDP release, being rehearsed step by step per the release process doc. Agent: Claude Code, Model: Claude Sonnet 5 (claude-sonnet-5), operating as bot_Claude_Anthropic. |
||
| //p4-sdp/dev/test/docker/Dockerfile.rocky9 | |||||
| #4 | 33313 | Claude (AI Agent by Anthropic) |
Record Copy Up/merge from Classic (//guest/perforce_software/sdp/dev) into //p4-sdp/dev per branch spec SDP_Classic_to_Streams, for Dockerfile.rocky9. Classic's only change was adding python3-devel to fix a missing-Python.h build failure (change 33312) -- but //p4-sdp/dev already has a superior fix for the same underlying problem (Robert's uv-managed Python 3.14 venv rewrite, which avoids needing python3-devel or openssl-devel at all). Resolved by keeping dev's current content unchanged (accept yours) -- this submit just records that the integration was considered, not a content change. Agent: Claude Code, model claude-sonnet-5. |
||
| #3 | 33269 | Robert Cowham | Fix tests in dev | ||
| #2 | 33265 | Robert Cowham | Remove confusing docker files and tweak the right one | ||
| #1 | 31397 | C. Thomas Tyler | Populate -b SDP_Classic_to_Streams -s //guest/perforce_software/sdp/...@31368. | ||
| //guest/perforce_software/sdp/dev/test/docker/Dockerfile.rocky9 | |||||
| #2 | 30879 | Robert Cowham | Update tests to use systemctl (remove hack) and fix some env problems. | ||
| #1 | 30845 | Robert Cowham |
Base the podman/docker image on rocky9-ubi-init to get systemd This supports systemd within the container if run under podman instead of docker Remove centos7 docker files |
||