blob: c28a0e1ae158c3b374bf7d3bd3a043a615bbe348 [file] [log] [blame]
# 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.
# Adapted from Apache Iceberg C++
# https://github.com/apache/iceberg-cpp/blob/main/.devcontainer/Dockerfile.template
# This Dockerfile is used to build a development container for Paimon C++.
# It is based on the Ubuntu image and installs necessary dependencies.
FROM ubuntu:24.04
# Install necessary packages
RUN apt update && \
apt install -y \
bash-completion \
build-essential \
ccache \
cmake \
curl \
gcc \
g++ \
git \
htop \
libboost-all-dev \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
lsb-release \
meson \
ninja-build \
pkg-config \
python3 \
python3-pip \
vim \
wget \
sudo \
&& rm -rf /var/lib/apt/lists/*
# Add a user for development
RUN useradd -ms /bin/bash paimon && \
usermod -aG sudo paimon && \
echo "paimon ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/paimon && \
chmod 0440 /etc/sudoers.d/paimon
# Switch to the paimon user
USER paimon
WORKDIR /home/paimon