kometchtech / docker-build Goto Github PK
View Code? Open in Web Editor NEWpersonal docker build for armhf and aarch64
personal docker build for armhf and aarch64
Hi,
I was trying to create a container from the image kometchtech/glider. But I always got the error:
standard_init_linux.go:185: exec user process caused "exec format error"
Could you please help?
Thanks,
Victor
alpineイメージを使用すると以下のようなエラーが発生。
[zscanner] line: 4483: parse error; code: -968 ('invalid Base64 character')
[zscanner] error parsing zone file `root.zone`
[zscanner] line: 4483: parse error; code: -968 ('invalid Base64 character')
[zscanner] error parsing zone file `root.zone`
https://www.google.com/search?q=docker+scratch+image+timezone&ie=utf-8&oe=utf-8
この辺りを見ると、zoneinfo.zip
を渡している。
が、実際に設定してみてもTimezone
は変わらなかった。
https://github.com/jeremyhuiskamp/golang-docker-scratch/blob/master/Dockerfile
https://sebest.github.io/post/create-a-small-docker-image-for-a-golang-binary/
compilerをclangに変更すると以下のようなエラーになる
#11 53.60 socket.c:1201:11: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
#11 53.60 cmsgp = CMSG_NXTHDR(msg, cmsgp);
#11 53.60 ^~~~~~~~~~~~~~~~~~~~~~~
#11 53.60 /usr/include/sys/socket.h:299:44: note: expanded from macro 'CMSG_NXTHDR'
#11 53.60 __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
#11 53.60 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#11 53.64 socket.c:1904:2: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.64 isc_refcount_init(&sock->references, 0);
#11 53.64 ^ ~~~~~~~~~~~~~~~~~
#11 53.64 ../include/isc/refcount.h:44:2: note: expanded from macro 'isc_refcount_init'
#11 53.64 atomic_init(target, value)
#11 53.64 ^ ~~~~~~
#11 53.64 ../include/isc/stdatomic.h:79:2: note: expanded from macro 'atomic_init'
#11 53.64 __c11_atomic_init(obj, desired)
#11 53.64 ^ ~~~
#11 53.64 socket.c:1957:9: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.64 INSIST(isc_refcount_current(&sock->references) == 0);
#11 53.64 ^ ~~~~~~~~~~~~~~~~~
#11 53.64 ../include/isc/refcount.h:56:17: note: expanded from macro 'isc_refcount_current'
#11 53.64 (uint_fast32_t)atomic_load_explicit(target, memory_order_acquire)
#11 53.64 ^ ~~~~~~
#11 53.64 ../include/isc/stdatomic.h:81:2: note: expanded from macro 'atomic_load_explicit'
#11 53.64 __c11_atomic_load(obj, order)
#11 53.64 ^ ~~~
#11 53.64 ../include/isc/util.h:240:32: note: expanded from macro 'INSIST'
#11 53.64 #define INSIST(e) ISC_INSIST(e)
#11 53.64 ^
#11 53.64 ../include/isc/assertions.h:98:22: note: expanded from macro 'ISC_INSIST'
#11 53.64 ((void) (ISC_LIKELY(cond) || \
#11 53.64 ^~~~
#11 53.64 ../include/isc/likely.h:19:54: note: expanded from macro 'ISC_LIKELY'
#11 53.64 #define ISC_LIKELY(x) __builtin_expect(!!(x), 1)
#11 53.64 ^
#11 53.67 socket.c:2599:2: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.67 isc_refcount_init(&sock->references, 1);
#11 53.67 ^ ~~~~~~~~~~~~~~~~~
#11 53.67 ../include/isc/refcount.h:44:2: note: expanded from macro 'isc_refcount_init'
#11 53.67 atomic_init(target, value)
#11 53.67 ^ ~~~~~~
#11 53.67 ../include/isc/stdatomic.h:79:2: note: expanded from macro 'atomic_init'
#11 53.67 __c11_atomic_init(obj, desired)
#11 53.67 ^ ~~~
#11 53.68 libtool: compile: clang -I/tmp/build -I../../.. -I./include -I./../pthreads/include -I../include -I./../include -I./.. -I/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pthread -pipe -fPIC -fPIC -FORTIFY_SOURCE=2 -Qunused-arguments -pthread -I/usr/include/libxml2 -fPIC -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing -c stdtime.c -fPIC -DPIC -o .libs/stdtime.o
#11 53.68 socket.c:2673:10: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.68 REQUIRE(isc_refcount_current(&sock->references) == 1);
#11 53.68 ^ ~~~~~~~~~~~~~~~~~
#11 53.68 ../include/isc/refcount.h:56:17: note: expanded from macro 'isc_refcount_current'
#11 53.68 (uint_fast32_t)atomic_load_explicit(target, memory_order_acquire)
#11 53.68 ^ ~~~~~~
#11 53.68 ../include/isc/stdatomic.h:81:2: note: expanded from macro 'atomic_load_explicit'
#11 53.68 __c11_atomic_load(obj, order)
#11 53.68 ^ ~~~
#11 53.68 ../include/isc/util.h:236:34: note: expanded from macro 'REQUIRE'
#11 53.68 #define REQUIRE(e) ISC_REQUIRE(e)
#11 53.68 ^
#11 53.68 ../include/isc/assertions.h:78:22: note: expanded from macro 'ISC_REQUIRE'
#11 53.68 ((void) (ISC_LIKELY(cond) || \
#11 53.68 ^~~~
#11 53.68 ../include/isc/likely.h:19:54: note: expanded from macro 'ISC_LIKELY'
#11 53.68 #define ISC_LIKELY(x) __builtin_expect(!!(x), 1)
#11 53.68 ^
#11 53.68 socket.c:2723:17: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.68 int old_refs = isc_refcount_increment(&sock->references);
#11 53.68 ^ ~~~~~~~~~~~~~~~~~
#11 53.69 ../include/isc/refcount.h:80:2: note: expanded from macro 'isc_refcount_increment'
#11 53.69 atomic_fetch_add_explicit(target, 1, memory_order_relaxed)
#11 53.69 ^ ~~~~~~
#11 53.69 ../include/isc/stdatomic.h:85:2: note: expanded from macro 'atomic_fetch_add_explicit'
#11 53.69 __c11_atomic_fetch_add(obj, arg, order)
#11 53.69 ^ ~~~
#11 53.69 socket.c:2741:6: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.69 if (isc_refcount_decrement(&sock->references) == 1) {
#11 53.69 ^ ~~~~~~~~~~~~~~~~~
#11 53.69 ../include/isc/refcount.h:88:2: note: expanded from macro 'isc_refcount_decrement'
#11 53.69 atomic_fetch_sub_explicit(target, 1, memory_order_release)
#11 53.69 ^ ~~~~~~
#11 53.69 ../include/isc/stdatomic.h:87:2: note: expanded from macro 'atomic_fetch_sub_explicit'
#11 53.69 __c11_atomic_fetch_sub(obj, arg, order)
#11 53.69 ^ ~~~
#11 53.71 libtool: compile: clang -I/tmp/build -I../../.. -I./include -I./../pthreads/include -I../include -I./../include -I./.. -I/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pthread -pipe -fPIC -fPIC -FORTIFY_SOURCE=2 -Qunused-arguments -pthread -I/usr/include/libxml2 -fPIC -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing -c time.c -fPIC -DPIC -o .libs/time.o
#11 53.73 libtool: compile: clang -I/tmp/build -I../../.. -I./include -I./../pthreads/include -I../include -I./../include -I./.. -I/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pthread -pipe -fPIC -fPIC -FORTIFY_SOURCE=2 -Qunused-arguments -pthread -I/usr/include/libxml2 -fPIC -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing -c syslog.c -fPIC -DPIC -o .libs/syslog.o
#11 53.73 socket.c:3255:6: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.73 if (isc_refcount_increment(&sock->references) == 0) {
#11 53.73 ^ ~~~~~~~~~~~~~~~~~
#11 53.73 ../include/isc/refcount.h:80:2: note: expanded from macro 'isc_refcount_increment'
#11 53.73 atomic_fetch_add_explicit(target, 1, memory_order_relaxed)
#11 53.73 ^ ~~~~~~
#11 53.73 ../include/isc/stdatomic.h:85:2: note: expanded from macro 'atomic_fetch_add_explicit'
#11 53.73 __c11_atomic_fetch_add(obj, arg, order)
#11 53.73 ^ ~~~
#11 53.73 socket.c:3259:3: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.73 isc_refcount_decrement(&sock->references);
#11 53.73 ^ ~~~~~~~~~~~~~~~~~
#11 53.73 ../include/isc/refcount.h:88:2: note: expanded from macro 'isc_refcount_decrement'
#11 53.73 atomic_fetch_sub_explicit(target, 1, memory_order_release)
#11 53.73 ^ ~~~~~~
#11 53.73 ../include/isc/stdatomic.h:87:2: note: expanded from macro 'atomic_fetch_sub_explicit'
#11 53.73 __c11_atomic_fetch_sub(obj, arg, order)
#11 53.73 ^ ~~~
#11 53.73 socket.c:3281:6: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.73 if (isc_refcount_decrement(&sock->references) == 1) {
#11 53.73 ^ ~~~~~~~~~~~~~~~~~
#11 53.73 ../include/isc/refcount.h:88:2: note: expanded from macro 'isc_refcount_decrement'
#11 53.73 atomic_fetch_sub_explicit(target, 1, memory_order_release)
#11 53.73 ^ ~~~~~~
#11 53.73 ../include/isc/stdatomic.h:87:2: note: expanded from macro 'atomic_fetch_sub_explicit'
#11 53.73 __c11_atomic_fetch_sub(obj, arg, order)
#11 53.73 ^ ~~~
#11 53.82 socket.c:4820:2: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.82 isc_refcount_increment(&nsock->references);
#11 53.82 ^ ~~~~~~~~~~~~~~~~~~
#11 53.82 ../include/isc/refcount.h:80:2: note: expanded from macro 'isc_refcount_increment'
#11 53.82 atomic_fetch_add_explicit(target, 1, memory_order_relaxed)
#11 53.82 ^ ~~~~~~
#11 53.82 ../include/isc/stdatomic.h:85:2: note: expanded from macro 'atomic_fetch_add_explicit'
#11 53.82 __c11_atomic_fetch_add(obj, arg, order)
#11 53.82 ^ ~~~
#11 53.87 socket.c:5535:16: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.87 (int)isc_refcount_current(&sock->references)));
#11 53.87 ^ ~~~~~~~~~~~~~~~~~
#11 53.87 ../include/isc/refcount.h:56:17: note: expanded from macro 'isc_refcount_current'
#11 53.87 (uint_fast32_t)atomic_load_explicit(target, memory_order_acquire)
#11 53.87 ^ ~~~~~~
#11 53.87 ../include/isc/stdatomic.h:81:2: note: expanded from macro 'atomic_load_explicit'
#11 53.87 __c11_atomic_load(obj, order)
#11 53.87 ^ ~~~
#11 53.87 socket.c:5502:31: note: expanded from macro 'TRY0'
#11 53.87 #define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
#11 53.87 ^
#11 53.88 socket.c:5638:12: error: address argument to atomic operation must be a pointer to _Atomic type ('isc_refcount_t *' (aka 'unsigned int *') invalid)
#11 53.88 (int)isc_refcount_current(&sock->references));
#11 53.88 ^ ~~~~~~~~~~~~~~~~~
#11 53.88 ../include/isc/refcount.h:56:17: note: expanded from macro 'isc_refcount_current'
#11 53.88 (uint_fast32_t)atomic_load_explicit(target, memory_order_acquire)
#11 53.88 ^ ~~~~~~
#11 53.88 ../include/isc/stdatomic.h:81:2: note: expanded from macro 'atomic_load_explicit'
#11 53.88 __c11_atomic_load(obj, order)
#11 53.88 ^ ~~~
#11 53.89 1 warning and 12 errors generated.
#11 53.90 make[3]: *** [Makefile:172: socket.lo] Error 1
#11 53.90 make[3]: *** Waiting for unfinished jobs....
#11 54.18 make[3]: Leaving directory '/tmp/build/lib/isc/unix'
#11 54.18 make[2]: *** [Makefile:203: subdirs] Error 1
#11 54.18 make[2]: Leaving directory '/tmp/build/lib/isc'
#11 54.18 make[1]: *** [Makefile:82: subdirs] Error 1
#11 54.18 make: *** [Makefile:89: subdirs] Error 1
#11 54.18 make[1]: Leaving directory '/tmp/build/lib'
エラーメッセージを見る限り、型変換に失敗してる?
FreeBSDではうまくbuild出来ているようなので、何が違うのか確認していく。
Dependabot couldn't find a Dockerfile for this project.
Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /bind9/Dockerfile
.
If this isn't a Docker project, or if it is a library, you may wish to disable updates for it from within Dependabot.
You can mention @dependabot in the comments below to contact the Dependabot team.
container実行にあたって、entrypoint.sh
で複数のプロセスを実行するが、実行順序によりプロセスがセグメンテーションフォルトを発生させる。
$ docker logs docker-env_kresd_1
-f 1 -c /etc/knot-resolver/kresd.conf
[ ta ] keyfile '/etc/knot-resolver/root.keys': doesn't exist, bootstrapping
[system] bind to 'fe80::42:acff:fe16:2@53' (UDP): Invalid argument
Segmentation fault (core dumped)
Knot Resolver Cache Garbage Collector v. 0.2
#!/usr/bin/env sh
# Deleting the trust anchor key file
rm -f /var/run/knot-resolver/root.keys
# Process execution
var="$@"
# Knot Resolver daemon
/usr/sbin/kresd $var &
# Knot Resolver Garbage Collector daemon
kres-cache-gc -c /var/run/knot-resolver -d 1000 &
# process foreground
tail -f /dev/null
また、各々のプロセスをsh -c
で呼び出す形にした場合、順序関係なくセグフォする。
knot-resolverをalpineイメージでbuildすると以下のようなエラーが発生する。
SIGBUS received; this is most likely due to filling up the filesystem where cache resides.
Cache file deleted.
kresd can not recover reliably by itself, exiting.
/dev/shm
をmountすれば良い、などの情報がある。
Dependabot couldn't find a Dockerfile for this project.
Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /pdns-dnsdist/Dockerfile
.
If this isn't a Docker project, or if it is a library, you may wish to disable updates for it from within Dependabot.
You can mention @dependabot in the comments below to contact the Dependabot team.
Dependabot couldn't find a Dockerfile for this project.
Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /pdns_rec/Dockerfile
.
If this isn't a Docker project, or if it is a library, you may wish to disable updates for it from within Dependabot.
You can mention @dependabot in the comments below to contact the Dependabot team.
luajitをArm64環境で使用すると、以下のようなエラーが発生することがある。
PANIC: unprotected error in call to Lua API (bad light userdata pointer)
Knot resolver公式でも認識しているが、結局のところ、luajit公式が対応しないと根本的にダメそう。
https://gitlab.labs.nic.cz/knot/knot-resolver/issues/216
debianはArm64のパッケージは削除された?
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907729
knot resolverで以下のようなエラーが発生する。
SIGBUS received; this is most likely due to filling up the filesystem where cache resides.
Cache file deleted.
kresd can not recover reliably by itself, exiting.
SIGBUS received; this is most likely due to filling up the filesystem where cache resides.
Cache file deletion failed.
kresd can not recover reliably by itself, exiting.
root zoneをダウンロードして更新するタイミングで失敗する?
[prefill] downloading root zone...
[prefill] saving root zone...
[prefill] root zone successfully parsed, import started
[prefill] root zone refresh in 23 hours 59 minutes
[ ta ] key: 19036 state: Valid
[ ta ] key: 20326 state: Valid
[ ta ] next refresh for . in 24 hours
-O0
を設定して最適化を無効、-heap-arrays
も設定したうえで問題が変化するか確認する。
Line 13 in c4f6cf6
Hello!
Currently, I get this error when I create a new DoH Server:
Fatal Lua error: [string "chunk"]:11: Caught exception: Outgoing DNS over HTTPS support requested (via 'dohPath' on newServer()) but nghttp2 support is not available
It appears that the binary needs to be compiled with nghttp2
.
Here's the relevant PR diff: https://github.com/PowerDNS/pdns/pull/10635/files
Dependabot couldn't find a Dockerfile for this project.
Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /knot-dns/Dockerfile
.
If this isn't a Docker project, or if it is a library, you may wish to disable updates for it from within Dependabot.
You can mention @dependabot in the comments below to contact the Dependabot team.
arm64v8/golang:alpine を使用すると、go buildに失敗する。
make: *** Waiting for unfinished jobs....
(cd /go/src/github.com/mholt/caddy 2>/dev/null && git checkout -q master 2>/dev/null || true)
(cd /go/src/github.com/miekg/dns 2>/dev/null && git checkout -q master 2>/dev/null || true)
(cd /go/src/github.com/prometheus/client_golang 2>/dev/null && git checkout -q master 2>/dev/null || true)
go get -u github.com/mholt/caddy
go get -u github.com/miekg/dns
go get -u github.com/prometheus/client_golang/prometheus/promhttp
go get -u github.com/prometheus/client_golang/prometheus
(cd /go/src/github.com/mholt/caddy && git checkout -q v0.10.13)
(cd /go/src/github.com/miekg/dns && git checkout -q v1.0.15)
(cd /go/src/github.com/prometheus/client_golang && git checkout -q v0.8.0)
go get -u golang.org/x/tools/cmd/benchcmp || true
+ true
Removing intermediate container 463193cc8f3d
---> 132ad8c6c0d5
Step 6/12 : FROM scratch
--->
Step 7/12 : LABEL maintainer="kometchtech <kometch@*******>" arch="aarch64" description="CoreDNS (writ
ten in Go) chains plugins. Each plugin performs a DNS function." url="https://github.com/coredns/coredns"
---> Using cache
---> 9a7b21c778b1
Step 8/12 : ENV TZ=Asia/Tokyo
---> Using cache
---> bd423fd0f1cb
Step 9/12 : COPY --from=build-env /etc/ssl/certs /etc/ssl/certs
---> 6a3f0b820477
Step 10/12 : COPY --from=build-env /go/src/github.com/coredns/coredns/coredns /usr/local/bin/coredns
COPY failed: stat /var/lib/docker/overlay2/70957f5ab9ea459891b29c055b136debd38faae5785d834d7be250af2ba8e65d/merged/g
o/src/github.com/coredns/coredns/coredns: no such file or directory
arm64v8/golang だと問題なくbuildは出来る
どうやっても以下のエラーが解決できない。
arm64v8でのalpineイメージでbuildはダメ?
[ ta ] keyfile '/etc/knot-resolver/root.keys': doesn't exist, bootstrapping
/usr/local/lib/kdns_modules/trust_anchors.lua:503: [ ta ] fetch of "https://data.iana.org/root-anchors/root-anchors.xml" failed: temporary failure in name resolution
[ ta ] Failed to bootstrap root trust anchors; see:
https://knot-resolver.readthedocs.io/en/latest/daemon.html#enabling-dnssec
[system] bind to 'fe80::42:acff:fe16:a@53' Invalid argument
[system] bind to 'fe80::42:acff:fe16:a@53' Invalid argument
[system] bind to 'fe80::42:acff:fe16:a@53' Invalid argument
[system] bind to 'fe80::42:acff:fe16:a@53' Invalid argument
[system] bind to 'fe80::42:acff:fe16:a@53' Invalid argument
[system] bind to 'fe80::42:acff:fe16:a@53' Invalid argument
/usr/local/lib/kdns_modules/trust_anchors.lua:503: [ ta ] fetch of "https://data.iana.org/root-anchors/root-anchors.xml" failed: temporary failure in name resolution
[ ta ] Failed to bootstrap root trust anchors; see:
https://knot-resolver.readthedocs.io/en/latest/daemon.html#enabling-dnssec
[ ta ] keyfile '/etc/knot-resolver/root.keys': doesn't exist, bootstrapping
CoreDNSでgo get
するとerrorになる件、issueのコメントを見ると将来的に解消される、という認識で良いのかな?
# github.com/coredns/coredns/plugin/metrics
src/github.com/coredns/coredns/plugin/metrics/metrics.go:43:49: too many arguments in call to prometheus.NewProcessCollector
have (int, string)
want (prometheus.ProcessCollectorOpts)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.