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

cert-issuer docker images build error and problem #125

Open
northeusunshine opened this Issue Jan 23, 2019 · 5 comments

Comments

Projects
None yet
2 participants
@northeusunshine
Copy link

northeusunshine commented Jan 23, 2019

hi,
I use rapsberrypi 3 with armv7l raspbian system to install the docker and blockcerts software.

  1. when it comes to "docker build -t bc/cert-issuer:1.0 .", it generates an error, Standard_init_linux.go:207: exec user process caused “exec format error“.

  2. I also tried another method using "docker build -t bc/cert-issuer:1.0 -f Dockerfile.web .", which can not finish even taking hours. the problem is the system can not work when compiling code. I got the same results after trying multiple times. meanwhile, what the difference between two build method?

Please help provice advice how to resolve the errors.
Many thanks
Jack

@AnthonyRonning

This comment has been minimized.

Copy link
Contributor

AnthonyRonning commented Jan 23, 2019

Hmm, not going to be able to test this myself. I've googled the error and see that the error is common with docker images on arm systems. Saw several fixes but don't see any that apply to how we are using the Dockerfile.

Best suggestion I have would be to troubleshoot the Dockerfile by removing everything custom and seeing if you can build. If so, then start adding things in and see what breaks. Could be that the core docker image seegno/bitcoind:0.13-alpine doesn't work for arm.

Might be a good place to start:

FROM seegno/bitcoind:0.13-alpine
MAINTAINER Kim Duffy "kimhd@mit.edu"


RUN apk add --update \
        bash 


ENTRYPOINT bash

Haven't tested that myself but I think it shows what I mean by removing everything and starting with a base build. Not sure what dependencies are absolutely required in the RUN apk add --update part but I hope you can get something working to find the source of the problem.

@northeusunshine

This comment has been minimized.

Copy link
Author

northeusunshine commented Jan 24, 2019

Hi,
Thanks for your advice.
I tried the the simplified Dockfile you suggested, the same error occured (please see below):
I wonder that from the error, what conclusion can be drawn?
and how to find base image for blockcerts which can be used in RPI Raspbian system?
Thanks,
//
pi@raspberrypi:~/cert-issuer $ sudo docker build -t bc/cert-issuer:1.0 .
Sending build context to Docker daemon 2.902MB
Step 1/4 : FROM seegno/bitcoind:0.13-alpine
---> 73b9b57b4bd1
Step 2/4 : MAINTAINER Kim Duffy "kimhd@mit.edu"
---> Using cache
---> e17606b0f339
Step 3/4 : RUN apk add --update bash
---> Running in ef585009d25d
standard_init_linux.go:207: exec user process caused "exec format error"
The command '/bin/sh -c apk add --update bash' returned a non-zero code: 1
//
The used Dockfile for image building:

FROM seegno/bitcoind:0.13-alpine
MAINTAINER Kim Duffy "kimhd@mit.edu"

RUN apk add --update
bash

ENTRYPOINT bash
//
My RPi os info is as follows:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l GNU/Linux
pi
//
The below is installed Docker version info
pi@raspberrypi:~ $ sudo docker info
Containers: 16
Running: 0
Paused: 0
Stopped: 16
Images: 30
Server Version: 18.09.0
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 96ec2177ae841256168fcf76954f7177af9446eb
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.14.50-v7+
Operating System: Raspbian GNU/Linux 9 (stretch)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 927.2MiB
Name: raspberrypi
ID: GN44:TVES:TUYF:LVGK:HQHR:R3EK:AGQ5:WZL3:ZK2V:O4GQ:VVYP:YWTL
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
aegis-base.aliyun.com:5000
aegis-inner.aliyun.com:5000
aegis-paas.aliyun.com:5000
aegis-saas.aliyun.com:5000
127.0.0.0/8
Registry Mirrors:
https://registry.docker-cn.com/
Live Restore Enabled: false
Product License: Community Engine

WARNING: No swap limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
//

@AnthonyRonning

This comment has been minimized.

Copy link
Contributor

AnthonyRonning commented Jan 24, 2019

Looks like it's a problem with the base image, here's an unresolved issue I found on it, but it looks like it has some solutions there you can try: ruimarinho/docker-bitcoin-core#67

@northeusunshine

This comment has been minimized.

Copy link
Author

northeusunshine commented Jan 24, 2019

Reviewed the link,very informative post for me(just begin to use docker).
So could you please point out the specific way to do?

For another way to build with Dockfile.web using Ubuntu18.04 as base image, instead of seegno/bitcoind:0.13-alpine, does it mean it will generate image with same functionality as seegno/bitcoind:0.13-alpine? meanwhile Raspbian system is 32bits, Ubuntu18.04 should be 64bits, can the generated image run on Raspbian container(if image is successfully built)?

Thanks a lot!

@AnthonyRonning

This comment has been minimized.

Copy link
Contributor

AnthonyRonning commented Jan 24, 2019

Building just a base ubuntu image won't give you the same functionality as seegno/bitcoind:0.13-alpine because there's specific things going on in that image that we use, such as bitcoind. You'd essentially need to build your own version of this (https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.13/alpine/Dockerfile) with whatever changes make it arm compatible (via that issue linked in my other comment).

Then (and this is where my docker knowledge falls off) use the image you build manually as the FROM image in our dockerfile. Maybe that means you uploading your own image to DockerHub and referencing it as the FROM, I'm not too sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment