From 61cc8163f9b98ff093bf42cc68e5b492f840d895 Mon Sep 17 00:00:00 2001 From: Kenta <106167071+Its-Kenta@users.noreply.github.com> Date: Mon, 30 Jan 2023 20:05:02 +0000 Subject: [PATCH] Update docker script and dockerfile Using Ubuntu 23 throws an error "groupadd: GID '1000' already exists" when trying to build. Ubuntu 22 works fine. There should be no difference between building C3 on Ubuntu 22 vs 23. To avoid issues raised it's best to move to single Ubuntu version that builds the compiler. --- build-with-docker.sh | 42 +++++++++++++++++------------------------- docker/Dockerfile | 2 +- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/build-with-docker.sh b/build-with-docker.sh index 51e6f5ee6..00dbfeb29 100755 --- a/build-with-docker.sh +++ b/build-with-docker.sh @@ -2,13 +2,13 @@ ## build-with-docker.sh ## @author gdm85 ## -## Script to build c3c for either Ubuntu 22 or 23. +## Script to build c3c for Ubuntu 22 ## # if [ $# -ne 1 -a $# -ne 2 ]; then - echo "Usage: build-with-docker.sh (22|23) [Debug|Release]" 1>&2 - exit 1 + echo "Usage: build-with-docker.sh [Debug|Release]" 1 + exit 1 fi set -e @@ -17,37 +17,29 @@ DOCKER=docker DOCKER_RUN="" IMAGE="c3c-builder" if type podman 2>/dev/null >/dev/null; then - DOCKER=podman - DOCKER_RUN="--userns=keep-id" - IMAGE="localhost/$IMAGE" + DOCKER=podman + DOCKER_RUN="--userns=keep-id" + IMAGE="localhost/$IMAGE" fi -if [ -z "$2" ]; then - CMAKE_BUILD_TYPE=Debug +if [ -z "$1" ]; then + CMAKE_BUILD_TYPE=Debug else - CMAKE_BUILD_TYPE="$2" + CMAKE_BUILD_TYPE="$1" fi -TAG="$1" -if [ "$1" = 22 ]; then - UBUNTU_VERSION="22.10" - LLVM_VERSION="15" -elif [ "$1" = 23 ]; then - UBUNTU_VERSION="23.04" - LLVM_VERSION="15" -else - echo "ERROR: expected 22 or 23 as Ubuntu version argument" 1>&2 - exit 2 -fi -IMAGE="$IMAGE:$TAG" +UBUNTU_VERSION="22.10" +LLVM_VERSION="15" -cd docker && $DOCKER build -t $IMAGE --build-arg UID=$(id -u) --build-arg GID=$(id -g) \ - --build-arg DEPS="llvm-$LLVM_VERSION-dev liblld-$LLVM_VERSION-dev clang-$LLVM_VERSION libllvm$LLVM_VERSION llvm-$LLVM_VERSION-runtime" \ - --build-arg UBUNTU_VERSION="$UBUNTU_VERSION" . +IMAGE="$IMAGE:22" + +cd docker && $DOCKER build -t $IMAGE\ + --build-arg DEPS="llvm-$LLVM_VERSION-dev liblld-$LLVM_VERSION-dev clang-$LLVM_VERSION libllvm$LLVM_VERSION llvm-$LLVM_VERSION-runtime" \ + --build-arg UBUNTU_VERSION="$UBUNTU_VERSION" . cd .. rm -rf build bin mkdir -p build bin exec $DOCKER run -ti --rm --tmpfs=/tmp $DOCKER_RUN -v "$PWD":/home/c3c/source -w /home/c3c/source $IMAGE bash -c \ - "cd build && cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DC3_LLVM_VERSION=$LLVM_VERSION .. && cmake --build . && mv c3c lib ../bin/" + "cd build && cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DC3_LLVM_VERSION=$LLVM_VERSION .. && cmake --build . && mv c3c lib ../bin/" \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index 8e87853f3..59a4924e9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,6 +11,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && export TERM=xterm && apt-get update ARG GID=1000 ARG UID=1000 -RUN groupadd --gid=$GID c3c && useradd --gid=$GID --uid=$GID --create-home --shell /bin/bash c3c +RUN groupadd -o --gid=$GID c3c && useradd --gid=$GID --uid=$GID --create-home --shell /bin/bash c3c USER c3c