| # Copyright 2019 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Creates a Docker image containing necessary dependencies of ssh_client and a |
| # command to build all of Secure Shell. |
| # |
| # For details on rebuilding & publishing the container, see: |
| # http://g3doc/security/nassh/g3doc/docker.md |
| # |
| # Although all changes at this point can be done in the kokoro/build script. |
| |
| FROM debian:bullseye |
| |
| ENV DEBIAN_FRONTEND noninteractive |
| |
| # Since the container runs as root, don't muck with the cache files as the user |
| # won't be root outside of the container. Shouldn't be a performance hit. |
| ENV PYTHONDONTWRITEBYTECODE 1 |
| |
| # Install needed packages for building ssh_client. |
| RUN dpkg --add-architecture i386 |
| # apt-utils is used to autoprocess config files during install below. |
| RUN apt-get update && apt-get install -y --no-install-recommends apt-utils |
| |
| # Keep this in sync with the README.md's Development Tools section. |
| # We also list packages needed by Chrome itself for headless tests. |
| RUN apt-get --assume-yes install --no-install-recommends \ |
| gcc g++ libstdc++6:i386 libglib2.0-0:i386 git make cmake lbzip2 \ |
| python python2.7 python3 python3-requests \ |
| curl zlib1g-dev zip unzip rsync pkg-config xz-utils patch \ |
| libasound2 libatk1.0-0 libatk-bridge2.0-0 libatspi2.0-0 libcairo2 \ |
| libcups2 libdbus-1-3 libexpat1 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 \ |
| libnspr4 libnss3 libpango-1.0-0 libuuid1 libx11-6 libx11-xcb1 libxcb1 \ |
| libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 \ |
| libxrandr2 libxrender1 libxss1 libxtst6 default-jre-headless libxcb-dri3-0 \ |
| libdrm2 libgbm1 gettext |
| |
| # Purge some packages to keep the container a little smaller. Do it after the |
| # install above in case this removes stuff we actually need. We want it to be |
| # a failure rather than wasting time re-installing. |
| RUN apt-get --assume-yes --allow-remove-essential purge --auto-remove \ |
| apt-utils sysvinit-utils |
| RUN rm -rf /usr/share/doc /usr/share/info /usr/share/man |
| |
| # Clean out any caches. We won't need them anymore. |
| RUN apt-get clean |
| |
| # Set git config to stub values for webports patch to work. |
| # When patches are applied, webports generates local git repos & commits. |
| RUN git config --system user.email "noreply@google.com" |
| RUN git config --system user.name "Secure Shell Builder" |
| |
| CMD /libapps/kokoro/build |