Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Build Fails: Manual Installation of libvips >= 8.11.3 Necessary for glibc 2.28 #1281

Open
1 task done
ZODIAC3K opened this issue Oct 12, 2024 · 2 comments
Open
1 task done
Assignees

Comments

@ZODIAC3K
Copy link

Issue regarding the website

  • I've checked that this isn't a duplicate issue.

After forking the swag-for-dev repo I ran these docker commands to build and start the dev docker container.

  docker build --target base -t devswag-dev . 
  && docker run -d -p 8000:8000 --name devswag-dev-container devswag-dev 
  && docker attach devswag-dev-container 

Text Log --

docker build --target base -t devswag-dev . && docker run -d -p 8000:8000 --name devswag-dev-container devswag-dev && docker attach devswag-dev-container                        
[+] Building 90.6s (13/13) FINISHED                                                          docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                         0.0s
 => => transferring dockerfile: 1.20kB                                                                       0.0s
 => [internal] load metadata for docker.io/library/debian:buster                                             2.2s
 => [auth] library/debian:pull token for registry-1.docker.io                                                0.0s
 => [internal] load .dockerignore                                                                            0.0s
 => => transferring context: 221B                                                                            0.0s
 => [base 1/8] FROM docker.io/library/debian:buster@sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c2  0.0s
 => [internal] load build context                                                                            0.0s
 => => transferring context: 208B                                                                            0.0s
 => CACHED [base 2/8] RUN apt-get update  && apt-get upgrade -y  && apt-get install -y --no-install-recomme  0.0s
 => CACHED [base 3/8] WORKDIR /devswag                                                                       0.0s
 => CACHED [base 4/8] RUN wget -O- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash    0.0s
 => CACHED [base 5/8] COPY .nvmrc ./                                                                         0.0s
 => CACHED [base 6/8] RUN nvm install && nvm use                                                             0.0s
 => CACHED [base 7/8] COPY package.json package-lock.json ./                                                 0.0s
 => ERROR [base 8/8] RUN set -x  && npm ci  && npm cache clean --force                                      88.4s
------                                                                                                            
 > [base 8/8] RUN set -x        && npm ci       && npm cache clean --force:                                       
0.223 + npm ci                                                                                                    
88.17                                                                                                             
88.17 > sharp@0.29.1 install /devswag/node_modules/sharp                                                          
88.17 > (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)
88.17 
88.22 sharp: Installation error: Use with glibc 2.28 requires manual installation of libvips >= 8.11.3
88.22 sharp: Please see https://sharp.pixelplumbing.com/install for required dependencies
88.26 npm ERR! code ELIFECYCLE
88.26 npm ERR! errno 1
88.26 npm ERR! sharp@0.29.1 install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)`
88.26 npm ERR! Exit status 1
88.26 npm ERR! 
88.26 npm ERR! Failed at the sharp@0.29.1 install script.
88.26 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
88.28 
88.28 npm ERR! A complete log of this run can be found in:
88.28 npm ERR!     /root/.npm/_logs/2024-10-12T11_06_57_177Z-debug.log
------
Dockerfile:21
--------------------
  20 |     COPY package.json package-lock.json ./
  21 | >>> RUN set -x \
  22 | >>>      # Install npm dependencies
  23 | >>>      && npm ci \
  24 | >>>      # Cleanup
  25 | >>>      && npm cache clean --force
  26 |     
--------------------
ERROR: failed to solve: process "/bin/bash --login -c set -x \t&& npm ci \t&& npm cache clean --force" did not complete successfully: exit code: 1

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/w456hbho65uddx88k3e092kls

From what I see above, glibc 2.28 requires the manual installation of libvips.
I tried adding the code snippet below to the Dockerfile to manually install libvips during the build.

# Download and install libvips binaries from Sharp's prebuilt releases
RUN wget --no-check-certificate -O /tmp/libvips.tar.gz https://github.com/lovell/sharp-libvips/releases/download/v8.11.3/libvips-8.11.3-linux-x64.tar.gz \
    && echo "Download completed." \
    && ls -l /tmp/libvips.tar.gz \
    && tar -tzf /tmp/libvips.tar.gz \ 
    && tar -xvzf /tmp/libvips.tar.gz --strip-components=2 -C /usr/local \
    && rm /tmp/libvips.tar.gz

Text Log --

11.31 include/webp/demux.h
11.31 include/webp/mux.h
11.31 include/webp/types.h
11.31 include/webp/encode.h
11.31 include/gio-unix-2.0/gio/
11.31 include/gio-unix-2.0/gio/gunixsocketaddress.h
11.31 include/gio-unix-2.0/gio/gunixconnection.h
11.31 include/gio-unix-2.0/gio/gunixcredentialsmessage.h
11.31 include/gio-unix-2.0/gio/gfiledescriptorbased.h
11.31 include/gio-unix-2.0/gio/gunixmounts.h
11.31 include/gio-unix-2.0/gio/gunixoutputstream.h
11.31 include/gio-unix-2.0/gio/gunixinputstream.h
11.31 include/gio-unix-2.0/gio/gunixfdlist.h
11.31 include/gio-unix-2.0/gio/gunixfdmessage.h
11.31 include/gio-unix-2.0/gio/gdesktopappinfo.h
11.41 lib/glib-2.0/include/
11.41 lib/glib-2.0/include/glibconfig.h
11.41 tar: Exiting with failure status due to previous errors
------
Dockerfile:12
--------------------
  11 |     # Download and install libvips binaries from Sharp's prebuilt releases
  12 | >>> RUN wget --no-check-certificate -O /tmp/libvips.tar.gz https://github.com/lovell/sharp-libvips/releases/download/v8.11.3/libvips-8.11.3-linux-x64.tar.gz \
  13 | >>>     && echo "Download completed." \
  14 | >>>     && ls -l /tmp/libvips.tar.gz \
  15 | >>>     && tar -tzf /tmp/libvips.tar.gz \ 
  16 | >>>     && tar -xvzf /tmp/libvips.tar.gz --strip-components=2 -C /usr/local \
  17 | >>>     && rm /tmp/libvips.tar.gz
  18 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c wget --no-check-certificate -O /tmp/libvips.tar.gz https://github.com/lovell/sharp-libvips/releases/download/v8.11.3/libvips-8.11.3-linux-x64.tar.gz     && echo \"Download completed.\"     && ls -l /tmp/libvips.tar.gz     && tar -tzf /tmp/libvips.tar.gz     && tar -xvzf /tmp/libvips.tar.gz --strip-components=2 -C /usr/local     && rm /tmp/libvips.tar.gz" did not complete successfully: exit code: 2

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/ly4yfojud0uu080ca2f3al30n

Solution

My proposed solution is to use "debian:bullseye" and directly install "libvips-dev". This approach simplifies the installation process and minimizes potential issues related to downloading binaries.

@aslafy-z
Copy link
Collaborator

Thank you for reporting this issue. Feel free to open a PR that bumps debian release and adds the needed dependency.

@ZODIAC3K
Copy link
Author

Created a PR have a look please!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants