From db4dce33a4c4546c22b882af7833e97fe1ebba6c Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Wed, 20 Nov 2024 15:04:25 +0800 Subject: [PATCH] ci: updated base-image --- docker/base-image/Dockerfile | 27 +++++-------------- .../install/chromedriver/chromedriver.sh | 8 +++++- docker/base-image/install/deps/deps.sh | 19 ++++++++++--- docker/base-image/install/java/java.sh | 9 ++++++- docker/base-image/install/node/node.sh | 18 ++++++------- docker/base-image/install/python/python.sh | 20 ++++++++++++++ docker/base-image/install/rod/rod.sh | 27 ------------------- 7 files changed, 66 insertions(+), 62 deletions(-) delete mode 100644 docker/base-image/install/rod/rod.sh diff --git a/docker/base-image/Dockerfile b/docker/base-image/Dockerfile index 38a6c38e..395438c6 100644 --- a/docker/base-image/Dockerfile +++ b/docker/base-image/Dockerfile @@ -7,26 +7,13 @@ ENV DEBIAN_FRONTEND=noninteractive # copy install scripts COPY ./install /app/install -# install deps -RUN bash /app/install/deps/deps.sh - -# install python -RUN bash /app/install/python/python.sh - -# install golang -RUN bash /app/install/golang/golang.sh - -# install node -RUN bash /app/install/node/node.sh - -# install java -#RUN bash /app/install/java/java.sh - -# install chromedriver -RUN bash /app/install/chromedriver/chromedriver.sh - -# install rod -RUN bash /app/install/rod/rod.sh +# install all dependencies in parallel +RUN bash /app/install/deps/deps.sh & \ + bash /app/install/python/python.sh & \ + bash /app/install/golang/golang.sh & \ + bash /app/install/node/node.sh & \ + bash /app/install/chromedriver/chromedriver.sh & \ + wait # working directory WORKDIR /app/backend diff --git a/docker/base-image/install/chromedriver/chromedriver.sh b/docker/base-image/install/chromedriver/chromedriver.sh index c8bc0cf5..0f20943f 100644 --- a/docker/base-image/install/chromedriver/chromedriver.sh +++ b/docker/base-image/install/chromedriver/chromedriver.sh @@ -4,7 +4,13 @@ version="stable" # deps -apt-get install -y xvfb libxi6 libgconf-2-4 +apt-get install -y \ + xvfb \ + libxi6 \ + libgconf-2-4 \ + libglib2.0-0 \ + libnss3 \ + libx11-6 # install puppeteer browsers package globally first npm install -g @puppeteer/browsers diff --git a/docker/base-image/install/deps/deps.sh b/docker/base-image/install/deps/deps.sh index bd2523a2..d7e7510b 100644 --- a/docker/base-image/install/deps/deps.sh +++ b/docker/base-image/install/deps/deps.sh @@ -7,7 +7,18 @@ chmod 777 /tmp apt-get update # common deps -apt-get install -y curl git net-tools iputils-ping ntp ntpdate nginx wget dumb-init cloc unzip build-essential gnupg2 libc6 - -# chromedriver deps -apt-get install -y libglib2.0-0 libnss3 libx11-6 # chromedriver deps +apt-get install -y \ + curl \ + git \ + net-tools \ + iputils-ping \ + ntp \ + ntpdate \ + nginx \ + wget \ + dumb-init \ + cloc \ + unzip \ + build-essential \ + gnupg2 \ + libc6 diff --git a/docker/base-image/install/java/java.sh b/docker/base-image/install/java/java.sh index 7c878e94..e2bb04c8 100644 --- a/docker/base-image/install/java/java.sh +++ b/docker/base-image/install/java/java.sh @@ -1,3 +1,10 @@ #!/bin/bash -apt-get install -y openjdk-11-jdk +# Exit on error +set -e + +# Update package list and install OpenJDK 11 +DEBIAN_FRONTEND=noninteractive apt-get update && \ + apt-get install -y --no-install-recommends openjdk-11-jdk && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* diff --git a/docker/base-image/install/node/node.sh b/docker/base-image/install/node/node.sh index 4b85d99e..60e57fa5 100644 --- a/docker/base-image/install/node/node.sh +++ b/docker/base-image/install/node/node.sh @@ -19,16 +19,16 @@ nvm alias default ${version} # verifies the right Node.js version is in the environment if [[ ! "$(node -v)" =~ ^v${version} ]]; then - echo "Node.js version is not v${version}.x" - exit 1 + echo "Node.js version is not v${version}.x" + exit 1 fi # install node dependencies npm install -g \ - yarn \ - pnpm \ - crawlab-sdk@latest \ - puppeteer \ - playwright \ - playwright-chromium \ - crawlee + yarn \ + pnpm \ + crawlab-sdk@latest \ + puppeteer \ + playwright \ + playwright-chromium \ + crawlee diff --git a/docker/base-image/install/python/python.sh b/docker/base-image/install/python/python.sh index 9e92d920..396972d0 100644 --- a/docker/base-image/install/python/python.sh +++ b/docker/base-image/install/python/python.sh @@ -2,6 +2,26 @@ version="3.12" +# install build dependencies +apt-get install -y \ + make \ + build-essential \ + libssl-dev \ + zlib1g-dev \ + libbz2-dev \ + libreadline-dev \ + libsqlite3-dev \ + wget \ + curl \ + llvm \ + libncursesw5-dev \ + xz-utils \ + tk-dev \ + libxml2-dev \ + libxmlsec1-dev \ + libffi-dev \ + liblzma-dev + # install pyenv curl https://pyenv.run | bash diff --git a/docker/base-image/install/rod/rod.sh b/docker/base-image/install/rod/rod.sh deleted file mode 100644 index 79eae02f..00000000 --- a/docker/base-image/install/rod/rod.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -cat < go.mod -module rod_github - -go 1.16 - -require github.com/go-rod/rod v0.107.1 -EOF - -cat < main.go -package main - -import "github.com/go-rod/rod" - -func main() { - _ = rod.New().MustConnect() -} -EOF - -go mod tidy -go run main.go - -rm -f go.mod -rm -f go.sum -rm -f main.go -rm -f screenshot.png \ No newline at end of file