# # Copyright (c) Contributors to the Open 3D Engine Project. # For complete copyright and license terms please see the LICENSE at the root of this distribution. # # SPDX-License-Identifier: Apache-2.0 OR MIT # # This is a base Dockerfile to use for self-containing local or remote development environments # # Once docker is installed, build a local image with this command: # `docker build /localDockerfilepath -t ubuntu-build:latest` # # To build using a local repo on disk, run this command: # `docker run -it -v /localo3depath:/data/workspace/o3de -v /localbuildpath:/data/workspace/o3de/build -v /local3rdPartypath:/root/.o3de/3rdParty \ # --name build-o3de -d ubuntu-build:latest /bin/sh -c 'cd /data/workspace/o3de && python/python.sh -u scripts/build/ci_build.py --platform Linux --type profile'` # # Attach to the running build to interact or view logs using this command: # `docker attach build-o3de` FROM ubuntu:20.04 WORKDIR /data/workspace # Initilize apt cache RUN apt-get clean && apt-get update # Setup time zone and locale data (necessary for SSL and HTTPS packages) RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata locales keyboard-configuration RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ update-locale LANG=en_US.UTF-8 ENV LANG=en_US.UTF-8 # Install common tools RUN apt-get -y install tar sudo less vim lsof firewalld net-tools pciutils \ file wget kmod xz-utils ca-certificates binutils kbd \ python3-pip bind9-utils jq bc unzip git git-lfs lsb-release \ software-properties-common # Install build and development tools RUN git clone --no-checkout https://github.com/o3de/o3de.git .o3de && \ cd .o3de && \ git sparse-checkout init --cone && \ git sparse-checkout set scripts/build/build_node && \ cd scripts/build/build_node/Platform/Linux && \ ./install-ubuntu.sh # Install supported version of cmake if build tool installation runs into issues ENV CMAKE_VER=3.21.1-0kitware1ubuntu20.04.1 RUN $(cmake --version) || apt-get -y install cmake=${CMAKE_VER} cmake-data=${CMAKE_VER} # Symlink clang version to non-versioned clang and set cc to clang RUN find /usr/bin/ -name clang* | sed -E 's/^(\/usr\/bin\/.*)(\-[0-9]*)$/ln -s -v \1\2 \1/' | xargs -d '\n' -n 1 bash -c && \ update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 && \ update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100