Improved docker build speed
This commit is contained in:
31
Dockerfile
31
Dockerfile
@@ -2,14 +2,15 @@ FROM nvidia/cuda:12.2.0-runtime-ubuntu22.04 AS base
|
|||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get upgrade -y && \
|
apt-get upgrade -y && \
|
||||||
apt install -y \
|
apt install -y \
|
||||||
python3-pip \
|
curl \
|
||||||
git \
|
git \
|
||||||
jq \
|
|
||||||
python3-venv \
|
|
||||||
wget \
|
|
||||||
gnupg \
|
gnupg \
|
||||||
|
jq \
|
||||||
|
python3-pip \
|
||||||
|
python3-venv \
|
||||||
|
tmux \
|
||||||
vim \
|
vim \
|
||||||
curl
|
wget
|
||||||
|
|
||||||
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
|
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
|
||||||
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
|
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
|
||||||
@@ -56,22 +57,26 @@ RUN rm -rf *.egg-info/
|
|||||||
FROM base AS sia-env
|
FROM base AS sia-env
|
||||||
RUN python3 -m venv /root/venvs/sia
|
RUN python3 -m venv /root/venvs/sia
|
||||||
COPY ./setup.py /root/sia/setup.py
|
COPY ./setup.py /root/sia/setup.py
|
||||||
COPY ./lib /root/sia/lib
|
|
||||||
RUN /root/venvs/sia/bin/python /root/sia/setup.py egg_info
|
RUN /root/venvs/sia/bin/python /root/sia/setup.py egg_info
|
||||||
|
RUN sed -i '/\/root\/sia\/lib/d' *.egg-info/requires.txt
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
/root/venvs/sia/bin/pip install -r *.egg-info/requires.txt
|
/root/venvs/sia/bin/pip install -r *.egg-info/requires.txt
|
||||||
RUN rm -rf *.egg-info/
|
RUN rm -rf *.egg-info/
|
||||||
|
|
||||||
COPY action_schema.xsd /root/sia/action_schema.xsd
|
|
||||||
RUN mkdir -p /root/sia/lib/xml_schema_validator/src/
|
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
|
||||||
/root/venvs/sia/bin/pip install -e /root/sia/
|
|
||||||
|
|
||||||
# Web frontend build
|
# Web frontend build
|
||||||
|
FROM base
|
||||||
|
# AS web-build
|
||||||
|
ENV NODE_VERSION=16.13.0
|
||||||
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
||||||
|
ENV NVM_DIR=/root/.nvm
|
||||||
|
RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION}
|
||||||
|
RUN . "$NVM_DIR/nvm.sh" && nvm use v${NODE_VERSION}
|
||||||
|
RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION}
|
||||||
|
ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}"
|
||||||
|
|
||||||
FROM node:20-alpine AS web-build
|
FROM node:20-alpine AS web-build
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY web/package*.json ./
|
COPY web/package.json ./
|
||||||
RUN npm install
|
RUN npm install
|
||||||
RUN rm -rf /root/.npm/_cacache
|
RUN rm -rf /root/.npm/_cacache
|
||||||
COPY web .
|
COPY web .
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ version = "0.1.0"
|
|||||||
description = "XML Schema validation library"
|
description = "XML Schema validation library"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pytest>=8",
|
|
||||||
"maturin>=1.0,<2.0",
|
"maturin>=1.0,<2.0",
|
||||||
]
|
]
|
||||||
|
optional-dependencies.dev = [
|
||||||
|
"pytest>=8",
|
||||||
|
]
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["maturin>=1.0,<2.0"]
|
requires = ["maturin>=1.0,<2.0"]
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ fi
|
|||||||
if ! command -v node &> /dev/null; then
|
if ! command -v node &> /dev/null; then
|
||||||
echo "Installing Node.js..."
|
echo "Installing Node.js..."
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
||||||
export NVM_DIR="$HOME/.nvm"
|
export NVM_DIR="/root/.nvm"
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||||
nvm install node
|
nvm install node
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,14 +1,20 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "Installing ITB tool..."
|
if [ -z "${SIA_INSTALL_NO_ITB}" ]; then
|
||||||
python3 -m venv /root/venvs/itb
|
echo "Installing ITB tool..."
|
||||||
/root/venvs/itb/bin/pip install -e /root/sia/tools/itb
|
python3 -m venv /root/venvs/itb
|
||||||
|
/root/venvs/itb/bin/pip install -e /root/sia/tools/itb
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Installing Train tool..."
|
if [ -z "${SIA_INSTALL_NO_TRAIN}" ]; then
|
||||||
python3 -m venv /root/venvs/train
|
echo "Installing Train tool..."
|
||||||
/root/venvs/train/bin/pip install -e /root/sia/tools/train
|
python3 -m venv /root/venvs/train
|
||||||
/root/venvs/train/bin/ipython kernel install --name=train
|
/root/venvs/train/bin/pip install -e /root/sia/tools/train
|
||||||
|
/root/venvs/train/bin/ipython kernel install --name=train
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Installing SIA core..."
|
if [ -z "${SIA_INSTALL_NO_CORE}" ]; then
|
||||||
python3 -m venv /root/venvs/sia
|
echo "Installing SIA core..."
|
||||||
/root/venvs/sia/bin/pip install -e /root/sia
|
python3 -m venv /root/venvs/sia
|
||||||
|
/root/venvs/sia/bin/pip install -e /root/sia
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user