ARG BASE_IMAGE=ubuntu:26.04
FROM ${BASE_IMAGE}
ENV container=docker
ENV SDP_DISTRO_PYTHON=/usr/bin/python3
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
systemd systemd-sysv dbus sudo hostname bash coreutils findutils procps psmisc diffutils lsof strace net-tools \
ca-certificates curl wget tar gzip unzip rsync openssh-client openssh-server mailutils \
build-essential openssl libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev libffi-dev liblzma-dev libldap2-dev libsasl2-dev \
python3 python3-dev python3-pip python3-venv iproute2 util-linux \
&& apt-get clean && rm -rf /var/lib/apt/lists/* \
&& useradd --create-home --shell /bin/bash perforce \
&& usermod --password "$(openssl passwd -6 "$(openssl rand -base64 48)")" perforce \
&& systemctl mask getty.target console-getty.service systemd-logind.service
RUN systemctl mask systemd-binfmt.service
STOPSIGNAL SIGRTMIN+3
CMD ["/sbin/init"]
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 34004 | Russell C. Jackson (Rusty) |
Improve SDP backup/recovery, Maintenance, logging and cloud operation. Add owned checkpoint locks, recovery-aware retention, preserved database switches, bounded cleanup and coordinated AWS/Azure snapshots. Fix service-user password initialization, edge staging, standby promotion state parsing, proxy cache setup, typed depot verification and historical-server configuration/error handling. Remove unused OTP programs; keep Windows removed, server.locks cleanup and the journal-count condition unchanged. Add no global shell strict modes. Update operational documentation and add reproducible mkdirs.sh/mkdirs.cfg container assurance. Validate Ubuntu 26.04 and UBI 8.10/9.8/10.2 across both Python runtimes: 44 stages; 428 offline tests per runtime/OS, zero offline skips; 19 deployed-archive comparisons per combination. Three six-node topology runs pass all 30 recovery/failure scenarios. P4D 2023.1 through 2026.1 on UBI 8/9 pass all 14 cells and 98 scenarios. Static, documentation and provenance checks pass. Containers do not certify every fleet kernel, patch build or integration. Tested source manifest SHA-256: e1a23e17b8ced8c1148d9a250589977c6f6e98606bf2a81dc3ff5d7c909e3695 Deployed comparison archive SHA-256: 1bd23217356ee3808e040d39aea5be9519bda7c8f2b4924656a70aff8ad7293a |