blob: dd55441296a94b1b4cbe7091f68a9402f51caca7 [file] [log] [blame]
FROM ubuntu:22.04 as deps
ARG TARGETARCH
# Avoid interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive
# Install system dependencies, python 3.10, and java 17
RUN apt-get update && \
apt-get install -y \
curl wget git build-essential pkg-config libssl-dev libffi-dev software-properties-common \
python3.10 python3.10-dev \
openjdk-17-jdk \
&& rm -rf /var/lib/apt/lists/*
# Install maven 3.9.10
RUN wget https://dlcdn.apache.org/maven/maven-3/3.9.10/binaries/apache-maven-3.9.10-bin.tar.gz \
&& tar -xzf apache-maven-3.9.10-bin.tar.gz \
&& mv apache-maven-3.9.10 /opt/maven \
&& rm apache-maven-3.9.10-bin.tar.gz
# Install go 1.23.0
RUN wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz \
&& rm go1.23.0.linux-amd64.tar.gz
# Install Thrift 0.22
RUN wget https://dlcdn.apache.org/thrift/0.22.0/thrift-0.22.0.tar.gz \
&& tar -xzf thrift-0.22.0.tar.gz \
&& cd thrift-0.22.0 \
&& ./configure --without-rs --enable-libs=no --enable-tests=no \
&& make -j$(nproc) \
&& make install \
&& cd .. \
&& rm -rf thrift-0.22.0 thrift-0.22.0.tar.gz
# Create non-root user (developer)
RUN useradd -m -s /bin/bash developer
USER developer
WORKDIR /home/developer
# Set environment variables
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-$TARGETARCH
ENV MAVEN_HOME=/opt/maven
ENV GOROOT=/usr/local/go
ENV GOPATH=/home/developer/go
ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$GOROOT/bin:$GOPATH/bin
EXPOSE 7878 8000 17000 8050 8930 8960 8962 8970 18800 19900 18889 19908
FROM deps AS compiler
COPY --chown=developer:developer .. /home/developer/workspace
WORKDIR /home/developer/workspace
RUN mvn clean install -DskipTests
FROM eclipse-temurin:17-jdk AS runner
WORKDIR /app
COPY --from=compiler /home/developer/workspace/distribution/*.tar.gz ./
COPY ../dev-tools/deployment-scripts/*.sh ./
COPY ../vault ./vault
RUN chmod +x ./distribution_update.sh ./services_up.sh
EXPOSE 7878 8000 17000 8050 8930 8960 8962 8970 18800 19900 18889 19908
CMD ["sh", "-c", "./distribution_update.sh && ./services_up.sh && sleep infinity"]