First version
This commit is contained in:
commit
02365a6379
5 changed files with 525 additions and 0 deletions
86
Dockerfile
Normal file
86
Dockerfile
Normal file
|
@ -0,0 +1,86 @@
|
|||
FROM buildpack-deps:bookworm
|
||||
|
||||
ARG SRV_UID="1000"
|
||||
ARG SRV_GID="1000"
|
||||
ARG SRV_VERSION="0"
|
||||
ARG SRV_APT_GET_INSTALL=""
|
||||
|
||||
ENV SRV_UID="${SRV_UID}"
|
||||
ENV SRV_GID="${SRV_GID}"
|
||||
ENV SRV_VERSION="${SRV_VERSION}"
|
||||
ENV SRV_APT_GET_INSTALL="${SRV_APT_GET_INSTALL}"
|
||||
|
||||
# Install Debian packages ----------------------------------------------------
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
RUN echo "locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8" > /debconf-preseed.txt \
|
||||
&& echo "locales locales/default_environment_locale select en_US.UTF-8" >> /debconf-preseed.txt \
|
||||
&& debconf-set-selections /debconf-preseed.txt && apt-get update -y \
|
||||
&& apt-get update -y \
|
||||
&& apt-get install -y git zip unzip curl ca-certificates build-essential \
|
||||
${SRV_APT_GET_INSTALL} \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/log/* /var/cache/*
|
||||
|
||||
# Install Python -------------------------------------------------------------
|
||||
|
||||
WORKDIR /usr/src
|
||||
|
||||
ENV PYTHON_MAJOR="3"
|
||||
ENV PYTHON_MINOR="10"
|
||||
ENV PYTHON_VERSION="${PYTHON_MAJOR}.${PYTHON_MINOR}.16"
|
||||
|
||||
ENV PYTHON_DIR="/usr/local/python/${PYTHON_VERSION}"
|
||||
ENV PATH="${PYTHON_DIR}/bin:${PATH}"
|
||||
|
||||
RUN mkdir -p /usr/src/python && cd /usr/src/python \
|
||||
&& curl -sfSLO https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz \
|
||||
&& tar --strip-components=1 -xzf Python-${PYTHON_VERSION}.tgz -C /usr/src/python \
|
||||
&& rm Python-${PYTHON_VERSION}.tgz \
|
||||
&& ./configure --prefix=${PYTHON_DIR} \
|
||||
--enable-shared \
|
||||
--enable-optimizations \
|
||||
--enable-ipv6 \
|
||||
LDFLAGS=-Wl,-rpath=${PYTHON_DIR}/lib,--disable-new-dtags \
|
||||
&& make -j $(nproc) \
|
||||
&& make -j $(nproc) altinstall \
|
||||
&& ln -s ${PYTHON_DIR}/bin/python${PYTHON_MAJOR}.${PYTHON_MINOR} ${PYTHON_DIR}/bin/python${PYTHON_MAJOR} \
|
||||
&& ln -s ${PYTHON_DIR}/bin/python${PYTHON_MAJOR} ${PYTHON_DIR}/bin/python \
|
||||
&& ln -s ${PYTHON_DIR}/bin/pip${PYTHON_MAJOR}.${PYTHON_MINOR} ${PYTHON_DIR}/bin/pip \
|
||||
&& cd .. && rm -rf /usr/src/python
|
||||
|
||||
RUN pip install ollama openai groq anthropic crewai crewai-tools \
|
||||
composio_crewai
|
||||
|
||||
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
|
||||
|
||||
# Install crewai user ---------------------------------------------------------
|
||||
|
||||
RUN mkdir /home/crewai /opt/rust \
|
||||
&& groupadd -g ${SRV_GID} crewai \
|
||||
&& useradd -s /bin/bash -d /home/crewai -u ${SRV_UID} -g ${SRV_GID} crewai \
|
||||
&& chown ${SRV_UID}.${SRV_GID} /home/crewai /opt/rust \
|
||||
&& rm -rf /tmp/*
|
||||
|
||||
# Activate crewai user --------------------------------------------------------
|
||||
|
||||
USER ${SRV_UID}:${SRV_GID}
|
||||
|
||||
RUN ln -s /app/.bash_history $HOME/.bash_history \
|
||||
&& ln -s /app/.composio $HOME/.composio
|
||||
|
||||
VOLUME /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Install rustup --------------------------------------------------------------
|
||||
|
||||
ENV RUSTUP_HOME=/opt/rust/rustup
|
||||
ENV CARGO_HOME=/opt/rust/cargo
|
||||
|
||||
ENV PATH="${PATH}:/opt/rust/cargo/bin"
|
||||
|
||||
RUN curl https://sh.rustup.rs -sSf | \
|
||||
sh -s -- --default-toolchain stable --profile default --no-modify-path -y
|
||||
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
Loading…
Add table
Add a link
Reference in a new issue