Dockerfile.rocky9 #1

  • //
  • p4-sdp/
  • main/
  • test/
  • docker/
  • Dockerfile.rocky9
  • View
  • Commits
  • Open Download .zip Download (2 KB)
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 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