From 89b99fbe7004f661223c71c58bbbd222390dcd80 Mon Sep 17 00:00:00 2001 From: yazart Date: Mon, 25 May 2026 15:02:13 +0300 Subject: [PATCH] chore: docker image copy --- Dockerfile | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/Dockerfile b/Dockerfile index e69de29..2d465a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1,100 @@ +FROM --platform=linux/amd64 ubuntu:jammy + +ARG DST_USER_ID +ARG DST_GROUP_ID +ARG LOCAL_BUILD=0 + +ENV PIPELINE_ID=00000000-0000-0000-0000-000000000000 +ENV SCANHUB_URL="http://localhost:3000/api/v1" + +ENV ALLOW_GITHUB_SSH=True + +VOLUME ["/input"] +VOLUME ["/report"] +VOLUME ["/status"] + +COPY ./apt-requirements.txt /tmp/apt.txt + +RUN apt-get update -y && \ + DEBIAN_FRONTEND=noninteractive TZ="Europe/UTC" \ + apt-get install -y $(cat /tmp/apt.txt) && \ + setcap cap_net_raw,cap_net_admin=eip /bin/tcpdump + +# Install Chrome browser for Karma +RUN cd /tmp && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt-get update -y && apt-get install -y ./google-chrome-stable_current_amd64.deb && rm -f google-chrome-stable_current_amd64.deb + +RUN if [ ${LOCAL_BUILD} -eq 1 ]; then groupadd nandy; else groupadd -g "${DST_GROUP_ID}" nandy; fi +RUN useradd -d /home/nandy -m -s /bin/bash -u "${DST_USER_ID}" -g "${DST_GROUP_ID}" nandy; +USER nandy + +ENV HOME /home/nandy +ENV WORKDIR $HOME/processing +ENV PROCESSING_VENV $HOME/processing/venv + +COPY --chown=nandy:nandy ./ssh-config /home/nandy/.ssh +RUN chmod 400 /home/nandy/.ssh/github_rsa + +ENV NVM_DIR="$HOME/.nvm" +RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> $HOME/.profile + +ENV NVM_DIR $HOME/.nvm +ENV NODE_VERSION 20.16.0 + +RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.40.0/install.sh | bash \ + && . $NVM_DIR/nvm.sh \ + && nvm install $NODE_VERSION \ + && nvm alias default $NODE_VERSION \ + && nvm use default + +# Fix git issue with big resps +RUN git config --global http.postBuffer 52428800 +RUN git config --global core.compression 0 +RUN git config --global http.version HTTP/1.1 +RUN git config --global submodule.recurse true +RUN git config --global submodule.fetchJobs 8 +RUN git config --global fetch.recurseSubmodules on-demand + +SHELL ["/bin/bash", "-l", "-c"] + +RUN mkdir $WORKDIR $HOME/extracted_package +WORKDIR $WORKDIR + +COPY --chown=nandy ./src/requirements.txt $WORKDIR + +RUN python3 -m venv $PROCESSING_VENV # && source $PROCESSING_VENV/bin/activate && pip install -r $WORKDIR/requirements.txt + +COPY --chown=nandy:nandy ./runtime_check $WORKDIR/runtime_check +RUN source $PROCESSING_VENV/bin/activate && pip install $WORKDIR/runtime_check/ + + +COPY --chown=nandy:nandy ./scanfeeder /usr/local/bin/scanfeeder +COPY --chown=nandy:nandy ./src/npm_package_processing.py $WORKDIR +COPY --chown=nandy:nandy ./src/debug_check.py $WORKDIR +COPY --chown=nandy:nandy ./metadata $HOME/metadata +COPY --chown=nandy:nandy ./run.sh /usr/local/bin/run.sh +RUN chmod +x /usr/local/bin/run.sh +COPY --chown=nandy ./pipe_create.sh /usr/local/bin/pipe_create.sh +RUN chmod +x /usr/local/bin/pipe_create.sh +COPY --chown=nandy ./pipe_listener.sh /usr/local/bin/pipe_listener.sh +RUN chmod +x /usr/local/bin/pipe_listener.sh +COPY --chown=nandy ./pipe_remove.sh /usr/local/bin/pipe_remove.sh +RUN chmod +x /usr/local/bin/pipe_remove.sh + +RUN bash -c 'source $PROCESSING_VENV/bin/activate && pip install -r $WORKDIR/requirements.txt' + +RUN mkdir $WORKDIR/config + +COPY entrypoint.sh /usr/local/bin/entrypoint.sh + +# Release version argument +ARG RELEASE_VERSION +LABEL org.opencontainers.image.version="${RELEASE_VERSION}" +ENV PLUGIN_VERSION="${RELEASE_VERSION}" + +# Build date argument +ARG BUILD_DATE +LABEL org.opencontainers.image.created="${BUILD_DATE}" +ENV PLUGIN_BUILD_DATE="${BUILD_DATE}" + +USER root +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]