Dockerfile.ubuntu22.sdp #1

  • //
  • p4-sdp/
  • main/
  • test/
  • docker/
  • Dockerfile.ubuntu22.sdp
  • View
  • Commits
  • Open Download .zip Download (1 KB)
FROM perforce/ubuntu22-base
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'

# Recommend resource allocation at runtime
CMD ["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.ubuntu22.list /tmp
RUN wget -qO /tmp/perforce.pubkey.raw https://package.perforce.com/perforce.pubkey
RUN ls -l /tmp/perforce.pubkey.raw
RUN gpg --dearmor < /tmp/perforce.pubkey.raw > /tmp/perforce.pubkey
RUN ls -l /tmp/perforce.pubkey
RUN sudo apt-key add < /tmp/perforce.pubkey
RUN sudo cp -f /tmp/perforce.pubkey /usr/share/keyrings/perforce.gpg
RUN ls -l /usr/share/keyrings/perforce.gpg
RUN sudo cp -f /tmp/perforce.ubuntu22.list /etc/apt/sources.list.d/perforce.list
RUN sudo ls -l /etc/apt/sources.list.d/perforce.list
RUN sudo cat /etc/apt/sources.list.d/perforce.list
RUN sudo apt-get update
RUN sudo apt-get install -y perforce-p4python3

USER root
CMD ["/p4/docker_entry.sh"]

# 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.ubuntu22.sdp
#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.ubuntu22.sdp
#1 30356 C. Thomas Tyler Added Rocky 9 and Ubuntu 22 to test suite.

Dropped CentOS 6.

Changed default OS for tests from CentOS 7 to Rocky 9.

Adapted to using podman for the test suite.

Reduced minimum disk space requirement for testing
from 1G to 10M.

To be revisited:
* Disabled OOM killer defenese feature and systemd due to
compatibility issues with the test environment.
* Disabled systemd by moving systemctl aside

Enhanced build_docker_image.sh; added '-clean' option and added
support for more platforms.

Updated OS-specific packages as needed for all platforms, e.g.
adding 'file' and 'rsync' utils as needed in Docker definitions.

Added minimum performance recommendations for test containers in
config.

Updated env.sh utilities.

This change test on:
[X] centos7
[X] rocky8
[X] rocky9
[X] ubuntu20
[X] ubuntu22

#review-30357 @robert_cowham

TO DO:
* This builds using the official SDP test suite run manually on
Tom's laptop. Next step: Get it working on our shiny new Jenkins
Rocky 9 server machine.