fix: ensure healthy node20, corepack, python3.12
This commit is contained in:
parent
5b099f59e6
commit
8315904427
1 changed files with 56 additions and 15 deletions
|
@ -1,6 +1,12 @@
|
||||||
FROM ubuntu:22.04 as skeleton
|
FROM ubuntu:22.04 as skeleton
|
||||||
|
|
||||||
ENV NODE_VERSION="20.12.2"
|
ENV NODE_VERSION "20.12.2"
|
||||||
|
ENV NVM_VERSION "0.37.2"
|
||||||
|
|
||||||
|
ENV PYTHON_VERSION "3.12"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
ENV TZ Etc/UTC
|
||||||
|
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
apt upgrade -y && \
|
apt upgrade -y && \
|
||||||
|
@ -11,28 +17,63 @@ RUN apt update && \
|
||||||
git \
|
git \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
python3 \
|
|
||||||
python3-pip \
|
|
||||||
python3-venv \
|
|
||||||
--no-install-recommends \
|
--no-install-recommends \
|
||||||
--autoremove
|
--autoremove && \
|
||||||
|
apt-get clean
|
||||||
|
|
||||||
FROM skeleton as build-node
|
COPY ./files/registries.conf /etc/containers/registries.conf
|
||||||
|
|
||||||
WORKDIR tmp
|
FROM skeleton AS build-python
|
||||||
|
|
||||||
# Install node.
|
RUN apt update && \
|
||||||
RUN curl https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz \
|
apt upgrade -y && \
|
||||||
--output /tmp/node-v$NODE_VERSION-linux-x64.tar.xz && \
|
apt install -y \
|
||||||
tar -xf /tmp/node-v$NODE_VERSION-linux-x64.tar.xz
|
build-essential \
|
||||||
|
libssl-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
libbz2-dev \
|
||||||
|
libreadline-dev \
|
||||||
|
libsqlite3-dev \
|
||||||
|
libncursesw5-dev \
|
||||||
|
tk-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libxmlsec1-dev \
|
||||||
|
libffi-dev \
|
||||||
|
liblzma-dev \
|
||||||
|
--no-install-recommends \
|
||||||
|
--autoremove && \
|
||||||
|
apt-get clean
|
||||||
|
|
||||||
|
RUN curl https://pyenv.run | bash
|
||||||
|
|
||||||
|
ENV PATH /root/.pyenv/bin:$PATH
|
||||||
|
|
||||||
|
RUN pyenv install $PYTHON_VERSION
|
||||||
|
|
||||||
FROM skeleton as runner
|
FROM skeleton as runner
|
||||||
|
|
||||||
WORKDIR /runner
|
WORKDIR /runner
|
||||||
|
|
||||||
COPY --from=build-node /tmp/node-v$NODE_VERSION-linux-x64/bin/* /bin/
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v$NVM_VERSION/install.sh | bash
|
||||||
COPY --from=build-node /tmp/node-v$NODE_VERSION-linux-x64/lib/* /lib/
|
|
||||||
|
|
||||||
RUN python3 -m pip install pipx
|
RUN . $HOME/.nvm/nvm.sh && \
|
||||||
|
nvm install $NODE_VERSION && \
|
||||||
|
nvm use $NODE_VERSION && \
|
||||||
|
nvm cache clear
|
||||||
|
|
||||||
COPY ./files/registries.conf /etc/containers/registries.conf
|
ENV NVM_DIR $HOME/.nvm
|
||||||
|
ENV PATH /root/.nvm/versions/node/v$NODE_VERSION/bin:$PATH
|
||||||
|
|
||||||
|
RUN node --version
|
||||||
|
|
||||||
|
RUN corepack enable
|
||||||
|
|
||||||
|
COPY --from=build-python /root/.pyenv /root/.pyenv
|
||||||
|
|
||||||
|
ENV PATH /root/.pyenv/bin:/root/.pyenv/shims:$PATH
|
||||||
|
|
||||||
|
RUN pyenv global $PYTHON_VERSION
|
||||||
|
|
||||||
|
RUN python --version
|
||||||
|
|
||||||
|
RUN pip install pipx
|
||||||
|
|
Loading…
Reference in a new issue