content: # Licensed to the Apache Software Foundation (ASF) under one
  # or more contributor license agreements.  See the NOTICE file
  # distributed with this work for additional information
  # regarding copyright ownership.  The ASF licenses this file
  # to you under the Apache License, Version 2.0 (the
  # "License"); you may not use this file except in compliance
  # with the License.  You may obtain a copy of the License at
  #
  #   http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing,
  # software distributed under the License is distributed on an
  # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  # KIND, either express or implied.  See the License for the
  # specific language governing permissions and limitations
  # under the License.
  
  FROM rust:1.85-bullseye
  
  ARG EXT_UID
  
  ENV RUST_LOG=info
  ENV RUST_BACKTRACE=full
  ENV DEBIAN_FRONTEND=noninteractive
  
  RUN apt-get update && \
      apt-get -y install libssl-dev openssl zlib1g zlib1g-dev libpq-dev cmake protobuf-compiler curl unzip
  
  RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
      apt-get update && \
      apt-get install -y nodejs && \
      npm install -g yarn
  
  # create build user with same UID as
  RUN adduser -q -u $EXT_UID builder --home /home/builder && \
      mkdir -p /home/builder/workspace
  USER builder
  
  ENV NODE_VER=18.9.0
  ENV HOME=/home/builder
  ENV PATH=$HOME/.cargo/bin:$PATH
  
  # prepare rust
  RUN rustup update && \
      rustup component add rustfmt && \
      cargo install cargo-chef --version 0.1.62
  
  WORKDIR /home/builder/workspace
  
  COPY dev/docker/builder-entrypoint.sh /home/builder
  ENTRYPOINT ["/home/builder/builder-entrypoint.sh"]
  