mirror of
https://github.com/leon-ai/leon.git
synced 2024-12-20 23:31:30 +03:00
61 lines
1.4 KiB
Docker
61 lines
1.4 KiB
Docker
FROM ubuntu:20.04
|
|
ENV IS_DOCKER true
|
|
|
|
# Replace shell with bash so we can source files
|
|
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
|
|
|
# Set debconf to run non-interactively
|
|
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
|
|
|
# Install base dependencies
|
|
RUN apt-get update && apt-get install --yes -q --no-install-recommends \
|
|
apt-transport-https \
|
|
build-essential \
|
|
ca-certificates \
|
|
curl \
|
|
git \
|
|
wget \
|
|
libssl-dev \
|
|
openssl \
|
|
libz-dev \
|
|
zlib1g-dev \
|
|
libbz2-dev \
|
|
libreadline-dev \
|
|
libsqlite3-dev \
|
|
llvm \
|
|
libncurses5-dev \
|
|
xz-utils \
|
|
tk-dev libxml2-dev \
|
|
libxmlsec1-dev \
|
|
libffi-dev \
|
|
liblzma-dev \
|
|
libgdbm-dev \
|
|
libnss3-dev \
|
|
libc6-dev
|
|
|
|
# Run the container as an unprivileged user
|
|
RUN groupadd docker && useradd -g docker -s /bin/bash -m docker
|
|
USER docker
|
|
WORKDIR /home/docker
|
|
|
|
# Install Node.js with nvm
|
|
ENV NVM_DIR /home/docker/.nvm
|
|
ENV NODE_VERSION v16.18.0
|
|
|
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
|
|
RUN /bin/bash -c "source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm use --delete-prefix $NODE_VERSION"
|
|
|
|
ENV NODE_PATH $NVM_DIR/versions/node/$NODE_VERSION/lib/node_modules
|
|
ENV PATH $NVM_DIR/versions/node/$NODE_VERSION/bin:$PATH
|
|
|
|
# Install Leon
|
|
WORKDIR /home/docker/leon
|
|
USER root
|
|
RUN chown -R docker /home/docker/leon
|
|
USER docker
|
|
COPY --chown=docker ./ ./
|
|
RUN npm install
|
|
RUN npm run build
|
|
|
|
CMD ["npm", "start"]
|