Sitelet https://web.archive.org/web/20200917220536/https://github.com/nodejs/docker-node/issues/1251
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

Image arm32v7/node:14-alpine is missing #1251

Open
SuperSandro2000 opened this issue Apr 22, 2020 · 12 comments
Open

Image arm32v7/node:14-alpine is missing #1251

SuperSandro2000 opened this issue Apr 22, 2020 · 12 comments
Labels

Comments

@SuperSandro2000
Copy link

@SuperSandro2000 SuperSandro2000 commented Apr 22, 2020

I can't find the 14-alpine tag for arm32v7/node. Did the built fail?

SuperSandro2000 added a commit to SuperSandro2000/docker-images that referenced this issue Apr 22, 2020
…nge (#60)"

This reverts commit 27ef4df.

Until nodejs/docker-node#1251 is fixed
@nschonni
Copy link
Member

@nschonni nschonni commented Apr 22, 2020

@tianon is this a docker hub build issue?

@tianon
Copy link
Contributor

@tianon tianon commented Apr 22, 2020

See the build logs at https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/node/ -- looks like both Node.js 13 and 14 are failing to build on Alpine:

...
  TOUCH /node-v14.0.0/out/Release/obj.target/tools/v8_gypfiles/v8_shared_internal_headers.stamp
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/asn1pars.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ca.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ciphers.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/cms.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/crl.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/crl2p7.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dgst.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dhparam.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dsa.o
  CC(target) /node-v14.0.0/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dsaparam.o
../deps/v8/src/base/cpu.cc: In function 'uint32_t v8::base::ReadELFHWCaps()':
../deps/v8/src/base/cpu.cc:122:22: error: 'Elf32_auxv_t' does not name a type
   using elf_auxv_t = Elf32_auxv_t;
                      ^~~~~~~~~~~~
../deps/v8/src/base/cpu.cc:124:8: error: 'elf_auxv_t' was not declared in this scope
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
        ^~~~~~~~~~
../deps/v8/src/base/cpu.cc:124:20: error: 'entry' was not declared in this scope
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                    ^~~~~
../deps/v8/src/base/cpu.cc:124:20: note: suggested alternative: 'encrypt'
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                    ^~~~~
                    encrypt
../deps/v8/src/base/cpu.cc:124:45: error: 'elf_auxv_t' does not name a type
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                                             ^~~~~~~~~~
../deps/v8/src/base/cpu.cc:124:55: error: expected '>' before '*' token
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                                                       ^
../deps/v8/src/base/cpu.cc:124:55: error: expected '(' before '*' token
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                                                       ^
                                                       (
../deps/v8/src/base/cpu.cc:124:56: error: expected primary-expression before '>' token
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                                                        ^
../deps/v8/src/base/cpu.cc:124:63: error: expected ')' before ';' token
   for (elf_auxv_t* entry = reinterpret_cast<elf_auxv_t*>(head);
                                                               ^
                                                               )
In file included from ../deps/icu-small/source/i18n/ucol_sit.cpp:24:
../deps/icu-small/source/i18n/ucol_sit.cpp: In function 'void ucol_sit_calculateWholeLocale(CollatorSpec*)':
../deps/icu-small/source/common/cstring.h:39:62: warning: 'char* strcat(char*, const char*)' accessing 193 or more bytes at offsets 192 and 0 may overlap 1 byte at offset 192 [-Wrestrict]
 #define uprv_strcat(dst, src) U_STANDARD_CPP_NAMESPACE strcat(dst, src)
../deps/icu-small/source/i18n/ucol_sit.cpp:395:9: note: in expansion of macro 'uprv_strcat'
         uprv_strcat(s->locale, s->locElements[UCOL_SIT_LANGUAGE]);
         ^~~~~~~~~~~
../deps/icu-small/source/common/cstring.h:39:62: warning: 'char* strcat(char*, const char*)' accessing 65 or more bytes at offsets 192 and 128 may overlap 1 byte at offset 192 [-Wrestrict]
 #define uprv_strcat(dst, src) U_STANDARD_CPP_NAMESPACE strcat(dst, src)
../deps/icu-small/source/i18n/ucol_sit.cpp:417:13: note: in expansion of macro 'uprv_strcat'
             uprv_strcat(s->locale, s->locElements[UCOL_SIT_KEYWORD]);
             ^~~~~~~~~~~
../deps/icu-small/source/common/cstring.h:39:62: warning: 'char* strcat(char*, const char*)' accessing 33 or more bytes at offsets 192 and 160 may overlap 1 byte at offset 192 [-Wrestrict]
 #define uprv_strcat(dst, src) U_STANDARD_CPP_NAMESPACE strcat(dst, src)
../deps/icu-small/source/i18n/ucol_sit.cpp:423:13: note: in expansion of macro 'uprv_strcat'
             uprv_strcat(s->locale, s->locElements[UCOL_SIT_PROVIDER]);
             ^~~~~~~~~~~
make[1]: *** [tools/v8_gypfiles/v8_libbase.target.mk:162: /node-v14.0.0/out/Release/obj.target/v8_libbase/deps/v8/src/base/cpu.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from /usr/include/c++/8.3.0/vector:69,
                 from ../deps/v8/src/base/utils/random-number-generator.h:9,
                 from ../deps/v8/src/base/utils/random-number-generator.cc:5:
/usr/include/c++/8.3.0/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long unsigned int&}; _Tp = long long unsigned int; _Alloc = std::allocator<long long unsigned int>]':
/usr/include/c++/8.3.0/bits/vector.tcc:413:7: note: parameter passing for argument of type 'std::vector<long long unsigned int>::iterator' {aka '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >'} changed in GCC 7.1
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8.3.0/vector:64,
                 from ../deps/v8/src/base/utils/random-number-generator.h:9,
                 from ../deps/v8/src/base/utils/random-number-generator.cc:5:
/usr/include/c++/8.3.0/bits/stl_vector.h: In function 'std::vector<long long unsigned int> v8::base::ComplementSample(const std::unordered_set<long long unsigned int>&, uint64_t)':
/usr/include/c++/8.3.0/bits/stl_vector.h:1085:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >' changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
/usr/include/c++/8.3.0/bits/stl_vector.h: In member function 'std::vector<long long unsigned int> v8::base::RandomNumberGenerator::NextSampleSlow(uint64_t, size_t, const std::unordered_set<long long unsigned int>&)':
/usr/include/c++/8.3.0/bits/stl_vector.h:1085:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >' changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
rm 743db481ec6ee4c0e310965a9d930a99b9c4ba95.intermediate
make: *** [Makefile:101: node] Error 2
Removing intermediate container 6dcc2baf766f
The command '/bin/sh -c addgroup -g 1000 node     && adduser -u 1000 -G node -s /bin/sh -D node     && apk add --no-cache         libstdc++     && apk add --no-cache --virtual .build-deps         curl     && ARCH= && alpineArch="$(apk --print-arch)"       && case "${alpineArch##*-}" in         x86_64)           ARCH='x64'           CHECKSUM="35f023387926a231fd64d204526ff15f501417b576ce3bf46002af7823c5fbd0"           ;;         *) ;;       esac   && if [ -n "${CHECKSUM}" ]; then     set -eu;     curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz";     echo "$CHECKSUM  node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c -       && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner       && ln -s /usr/local/bin/node /usr/local/bin/nodejs;   else     echo "Building from source"     && apk add --no-cache --virtual .build-deps-full         binutils-gold         g++         gcc         gnupg         libgcc         linux-headers         make         python     && for key in       94AE36675C464D64BAFA68DD7434390BDBE9B9C5       FD3A5288F042B6850C66B31F09FE44734EB7990E       71DCFD284A79C3B38668286BC97EC7A07EDE3FC1       DD8F2338BAE7501E3DD5AC78C273792F7D83545D       C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8       B9AE9905FFD7803F25714661B63B535A4C206CA9       77984A986EBC2AA786BC0F66B01FBB92821C587A       8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600       4ED778F539E3634C779C87C6D7062848A1AB005C       A48C2BEE680E841632CD4E44F07496B3EB3C1762       B9E2F5981AA6E0CD28160D9FF13993A75599653C     ; do       gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ||       gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" ||       gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ;     done     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz"     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"     && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc     && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c -     && tar -xf "node-v$NODE_VERSION.tar.xz"     && cd "node-v$NODE_VERSION"     && ./configure     && make -j$(getconf _NPROCESSORS_ONLN) V=     && make install     && apk del .build-deps-full     && cd ..     && rm -Rf "node-v$NODE_VERSION"     && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt;   fi   && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"   && apk del .build-deps   && node --version   && npm --version' returned a non-zero code: 2
@nschonni
Copy link
Member

@nschonni nschonni commented Apr 23, 2020

@rvagg I know you're building Alpine for the unofficial builds only, but it looks like there might be a failure on some architectures since 13

@nschonni nschonni added the alpine label Apr 23, 2020
@rvagg
Copy link
Member

@rvagg rvagg commented Apr 23, 2020

Well, we're doing armv7 glibc official builds fine, armv6 glibc unofficial builds are fine as are x64 musl unofficial builds (https://unofficial-builds.nodejs.org/download/release/v14.0.0/), so I guess this might be a armv7 musl specific thing? Something I've never even touched unfortunately and don't really have any insight into. GCC 8.3.0 should be fine, although we use 6 everywhere (other than x64 glibc which we use devtoolset-8's GCC 8 for 14+, but that's a slightly different beast to vanilla GCC 8).

@nschonni
Copy link
Member

@nschonni nschonni commented Apr 23, 2020

Maybe the fallback build isn't doing something it needs to there

&& make -j$(getconf _NPROCESSORS_ONLN) V= \

Is there additional flags or options that should be passed in or pinned?

@rvagg
Copy link
Member

@rvagg rvagg commented Apr 23, 2020

So is this repo reponsible for producing arm32v7/node images? Do they come out of this pipeline, using docker-node/Dockerfile-alpine.template? I thought arm32v7 was a separate project?

@nschonni
Copy link
Member

@nschonni nschonni commented Apr 23, 2020

The ARM parts aren't compiled here, just when the commit hashes are PR's to the Docker Official project. @tianon and co then run them on their extended CI based on what is in the architectures file for supported arch&tag combos

@rvagg
Copy link
Member

@rvagg rvagg commented Apr 23, 2020

https://github.com/nodejs/unofficial-builds/blob/dd7a33814a8a03a18cacbb2e272537524ec51be5/recipes/musl/run.sh#L22-L31

I guess you could/should add some DESTCPU and ARCH params to be explicit. configure should be able to discern but I've always been explicit with non-x64 platforms. Here's how we do it for ARM:

https://github.com/nodejs/unofficial-builds/blob/dd7a33814a8a03a18cacbb2e272537524ec51be5/recipes/armv6l/run.sh#L25-L27

And official builds come out of a cross-compiler which does the same thing:

https://github.com/nodejs/build/blob/66b6f61e674813d655783a8a994050d15b4c95c7/ansible/roles/docker/files/cc-selector.sh#L45-L46

But then you're going to have to figure out how they get into the template that's intended to be cross-platform.

@rvagg
Copy link
Member

@rvagg rvagg commented Apr 23, 2020

ah, you have an explicit ARCH in there that's probably not helping

&& ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
CHECKSUM=CHECKSUM_x64 \
;; \
*) ;; \

@rvagg
Copy link
Member

@rvagg rvagg commented Apr 23, 2020

not helping

well, not contributing, maybe you need to figure out what apk --print-arch does on armv7 and switch on that, make DESTCPU and ARCH explicit

@SuperSandro2000
Copy link
Author

@SuperSandro2000 SuperSandro2000 commented Apr 23, 2020

docker run arm32v7/alpine ash
# apk --print-arch
armv7
@killua99
Copy link

@killua99 killua99 commented May 8, 2020

Tags like current-alpine have all architectures but more version tags like 14-alpine or 14.2.0-alpine are missing some architecture as arm32v7/alpine.

Any progress on correcting these build?

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

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.