This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/atlas.git
commit 368c90dfe35cf552e619dc1c69e9caa4c64b9497 Author: Madhan Neethiraj <mad...@apache.org> AuthorDate: Fri Sep 8 12:46:22 2023 -0700 ATLAS-4795: docker setup updated to support Apple M1 (cherry picked from commit 3786524112d02951ac6a059085d303de2649e835) --- dev-support/atlas-docker/.env | 18 ++++++++++++++++-- dev-support/atlas-docker/Dockerfile | 5 ++++- dev-support/atlas-docker/Dockerfile.atlas | 5 +++++ dev-support/atlas-docker/Dockerfile.atlas-base | 11 ++++++++--- dev-support/atlas-docker/Dockerfile.atlas-build | 6 ++++++ dev-support/atlas-docker/docker-compose.atlas-base.yml | 3 +++ .../atlas-docker/docker-compose.atlas-build.yml | 2 ++ dev-support/atlas-docker/docker-compose.atlas.yml | 2 ++ dev-support/atlas-docker/scripts/atlas-build.sh | 2 ++ 9 files changed, 48 insertions(+), 6 deletions(-) diff --git a/dev-support/atlas-docker/.env b/dev-support/atlas-docker/.env index 623f0477c..c50ed6093 100644 --- a/dev-support/atlas-docker/.env +++ b/dev-support/atlas-docker/.env @@ -1,10 +1,24 @@ BUILD_HOST_SRC=true SKIPTESTS=true GIT_URL=https://github.com/apache/atlas.git -BRANCH=release-2.3.0 +BRANCH=branch-2.0 PROFILE=dist,external-hbase-solr -ATLAS_VERSION=2.3.0 +# Java version for AtlasBase image. +# This image gets used as base docker image for all images. +# Valid values: 8, 11, 17 +ATLAS_BASE_JAVA_VERSION=8 + +# Java version to use to build Apache Atlas +# Valid values: 8, 11, 17 +ATLAS_BUILD_JAVA_VERSION=8 + +# Java version to use to run Atlas server +# Valid values: 8, 11, 17 +ATLAS_SERVER_JAVA_VERSION=8 + +ATLAS_VERSION=2.4.0-SNAPSHOT +UBUNTU_VERSION=20.04 HADOOP_VERSION=3.3.0 HBASE_VERSION=2.3.3 KAFKA_VERSION=2.8.1 diff --git a/dev-support/atlas-docker/Dockerfile b/dev-support/atlas-docker/Dockerfile index 7bd79651f..12c1b6ea2 100644 --- a/dev-support/atlas-docker/Dockerfile +++ b/dev-support/atlas-docker/Dockerfile @@ -16,12 +16,15 @@ FROM ubuntu:18.04 +ARG TARGETARCH +ARG ATLAS_BASE_JAVA_VERSION + # Install Git, which is missing from the Ubuntu base images. RUN apt-get update && apt-get install -y git python # Install Java. RUN apt-get update && apt-get install -y openjdk-8-jdk -ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 +ENV JAVA_HOME /usr/lib/jvm/java-${ATLAS_BASE_JAVA_VERSION}-openjdk-${TARGETARCH} # Install Maven. diff --git a/dev-support/atlas-docker/Dockerfile.atlas b/dev-support/atlas-docker/Dockerfile.atlas index 888779133..83550c5f1 100644 --- a/dev-support/atlas-docker/Dockerfile.atlas +++ b/dev-support/atlas-docker/Dockerfile.atlas @@ -16,7 +16,12 @@ FROM atlas-base:latest +ARG ATLAS_SERVER_JAVA_VERSION ARG ATLAS_VERSION +ARG TARGETARCH + +ENV JAVA_HOME /usr/lib/jvm/java-${ATLAS_SERVER_JAVA_VERSION}-openjdk-${TARGETARCH} +RUN update-java-alternatives --set /usr/lib/jvm/java-1.${ATLAS_SERVER_JAVA_VERSION}.0-openjdk-${TARGETARCH} COPY ./scripts/atlas.sh ${ATLAS_SCRIPTS}/ COPY ./dist/apache-atlas-${ATLAS_VERSION}-server.tar.gz /home/atlas/dist/ diff --git a/dev-support/atlas-docker/Dockerfile.atlas-base b/dev-support/atlas-docker/Dockerfile.atlas-base index e68daa69d..4aa225c16 100644 --- a/dev-support/atlas-docker/Dockerfile.atlas-base +++ b/dev-support/atlas-docker/Dockerfile.atlas-base @@ -14,21 +14,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM ubuntu:20.04 +ARG UBUNTU_VERSION +FROM ubuntu:${UBUNTU_VERSION} +ARG TARGETARCH +ARG ATLAS_BASE_JAVA_VERSION # Install tzdata, Python, Java RUN apt-get update && \ DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata \ - python python3 python3-pip openjdk-8-jdk bc iputils-ping ssh pdsh + python python3 python3-pip openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk bc iputils-ping ssh pdsh # Set environment variables -ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 +ENV JAVA_HOME /usr/lib/jvm/java-${ATLAS_BASE_JAVA_VERSION}-openjdk-${TARGETARCH} ENV ATLAS_DIST /home/atlas/dist ENV ATLAS_HOME /opt/atlas ENV ATLAS_SCRIPTS /home/atlas/scripts ENV PATH /usr/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +RUN update-java-alternatives --set /usr/lib/jvm/java-1.${ATLAS_BASE_JAVA_VERSION}.0-openjdk-${TARGETARCH} + # setup groups, users, directories RUN groupadd atlas && \ diff --git a/dev-support/atlas-docker/Dockerfile.atlas-build b/dev-support/atlas-docker/Dockerfile.atlas-build index 4b381c1d9..42a2536ee 100644 --- a/dev-support/atlas-docker/Dockerfile.atlas-build +++ b/dev-support/atlas-docker/Dockerfile.atlas-build @@ -16,14 +16,20 @@ FROM atlas-base:latest +ARG ATLAS_BUILD_JAVA_VERSION +ARG TARGETARCH + # Install necessary packages to build Atlas RUN apt-get update && apt-get -y install git maven # Set environment variables +ENV JAVA_HOME /usr/lib/jvm/java-${ATLAS_BUILD_JAVA_VERSION}-openjdk-${TARGETARCH} ENV MAVEN_HOME /usr/share/maven ENV PATH /usr/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache-maven/bin +RUN update-java-alternatives --set /usr/lib/jvm/java-1.${ATLAS_BUILD_JAVA_VERSION}.0-openjdk-${TARGETARCH} + # setup atlas group, and users RUN mkdir -p /home/atlas/git && \ mkdir -p /home/atlas/.m2 && \ diff --git a/dev-support/atlas-docker/docker-compose.atlas-base.yml b/dev-support/atlas-docker/docker-compose.atlas-base.yml index 349c306d6..29f92a142 100644 --- a/dev-support/atlas-docker/docker-compose.atlas-base.yml +++ b/dev-support/atlas-docker/docker-compose.atlas-base.yml @@ -4,6 +4,9 @@ services: build: context: . dockerfile: Dockerfile.atlas-base + args: + - UBUNTU_VERSION=${UBUNTU_VERSION} + - ATLAS_BASE_JAVA_VERSION=${ATLAS_BASE_JAVA_VERSION} image: atlas-base container_name: atlas-base networks: diff --git a/dev-support/atlas-docker/docker-compose.atlas-build.yml b/dev-support/atlas-docker/docker-compose.atlas-build.yml index d2ec7bda5..f73874b39 100644 --- a/dev-support/atlas-docker/docker-compose.atlas-build.yml +++ b/dev-support/atlas-docker/docker-compose.atlas-build.yml @@ -4,6 +4,8 @@ services: build: context: . dockerfile: Dockerfile.atlas-build + args: + - ATLAS_BUILD_JAVA_VERSION=${ATLAS_BUILD_JAVA_VERSION} image: atlas-build container_name: atlas-build hostname: atlas-build.example.com diff --git a/dev-support/atlas-docker/docker-compose.atlas.yml b/dev-support/atlas-docker/docker-compose.atlas.yml index aeb706e59..b21540571 100644 --- a/dev-support/atlas-docker/docker-compose.atlas.yml +++ b/dev-support/atlas-docker/docker-compose.atlas.yml @@ -5,6 +5,7 @@ services: context: . dockerfile: Dockerfile.atlas args: + - ATLAS_SERVER_JAVA_VERSION=${ATLAS_SERVER_JAVA_VERSION} - ATLAS_VERSION=${ATLAS_VERSION} image: atlas:latest container_name: atlas @@ -27,6 +28,7 @@ services: atlas-zk: condition: service_started environment: + - ATLAS_SERVER_JAVA_VERSION - ATLAS_VERSION command: - /home/atlas/scripts/atlas.sh diff --git a/dev-support/atlas-docker/scripts/atlas-build.sh b/dev-support/atlas-docker/scripts/atlas-build.sh index 592a055f7..3679bb1ea 100755 --- a/dev-support/atlas-docker/scripts/atlas-build.sh +++ b/dev-support/atlas-docker/scripts/atlas-build.sh @@ -47,6 +47,8 @@ export MAVEN_OPTS="-Xms2g -Xmx2g" export M2=/home/atlas/.m2 +echo JAVA_HOME="${JAVA_HOME}" + if [ "${BUILD_HOST_SRC}" == "true" ] then if [ ! -f /home/atlas/src/pom.xml ]