Eos: Docker build failure

Created on 28 Jan 2018  ·  12Comments  ·  Source: EOSIO/eos

The reason:

Step 18/26 : COPY --from=builder /usr/local/lib/* /usr/local/lib/
 ---> Using cache
 ---> e01b6497df4e
Step 19/26 : COPY --from=builder /opt/eosio/bin /opt/eosio/bin
COPY failed: stat /var/lib/docker/aufs/mnt/932731c8c65c2f41e6c8ffed3faeb96ce2d19a999b603979efe359e8687a375c/opt/eosio/bin: no such file or directory

The result of docker version:

Client:
 Version:       17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:03:51 2017
 OS/Arch:       darwin/amd64

Server:
 Engine:
  Version:      17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:        Wed Dec 27 20:12:29 2017
  OS/Arch:      linux/amd64
  Experimental: true

Does anyone else occur this issue?

Most helpful comment

@tusik I removed all docker images for EOS and built again after changing some files like below. The build works fine for me...

diff --git a/Docker/Dockerfile b/Docker/Dockerfile
index 89ea2b22..d2f0973e 100644
--- a/Docker/Dockerfile
+++ b/Docker/Dockerfile
@@ -73,9 +73,9 @@ RUN git clone --depth 1 -b releases/stable git://github.com/mongodb/mongo-cxx-dr
 RUN git clone -b master --depth 1 https://github.com/EOSIO/eos.git --recursive \
     && cd eos \
     && cmake -H. -B"/tmp/build" -GNinja -DCMAKE_BUILD_TYPE=Release -DWASM_LLVM_CONFIG=/opt/wasm/bin/llvm-config -DCMAKE_CXX_COMPILER=clang++ \
-       -DCMAKE_C_COMPILER=clang -DCMAKE_INSTALL_PREFIX=/opt/eos  -DSecp256k1_ROOT_DIR=/usr/local \
-    && cmake --build /tmp/build --target install
-
+       -DCMAKE_C_COMPILER=clang -DCMAKE_INSTALL_PREFIX=/opt/eosio  -DSecp256k1_ROOT_DIR=/usr/local \
+    && cmake --build /tmp/build --target install \
+       && cd /tmp/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/eosio -P cmake_install.cmake


 FROM ubuntu:16.04
diff --git a/Docker/config.ini b/Docker/config.ini
index 6401c549..11e51c14 100644
--- a/Docker/config.ini
+++ b/Docker/config.ini
@@ -1,6 +1,6 @@
 # File to read Genesis State from
 # genesis-json =
-genesis-json = "/opt/eos/bin/data-dir/genesis.json"
+genesis-json = "/opt/eosio/bin/data-dir/genesis.json"

 # the location of the block log (absolute path or relative to application data dir)
 block-log-dir = "blocks"

Then I run below script and it works fine.

$ docker run --name eosiod -p 8888:8888 -p 9876:9876 -t eosio/eos start_eosiod.sh --genesis-json /opt/eosio/bin/data-dir/genesis.json

All 12 comments

I'm experiencing the same error. Have you made any progress with it?

I think it's same with issue#1146

Having the same issue :(

@tusik I removed all docker images for EOS and built again after changing some files like below. The build works fine for me...

diff --git a/Docker/Dockerfile b/Docker/Dockerfile
index 89ea2b22..d2f0973e 100644
--- a/Docker/Dockerfile
+++ b/Docker/Dockerfile
@@ -73,9 +73,9 @@ RUN git clone --depth 1 -b releases/stable git://github.com/mongodb/mongo-cxx-dr
 RUN git clone -b master --depth 1 https://github.com/EOSIO/eos.git --recursive \
     && cd eos \
     && cmake -H. -B"/tmp/build" -GNinja -DCMAKE_BUILD_TYPE=Release -DWASM_LLVM_CONFIG=/opt/wasm/bin/llvm-config -DCMAKE_CXX_COMPILER=clang++ \
-       -DCMAKE_C_COMPILER=clang -DCMAKE_INSTALL_PREFIX=/opt/eos  -DSecp256k1_ROOT_DIR=/usr/local \
-    && cmake --build /tmp/build --target install
-
+       -DCMAKE_C_COMPILER=clang -DCMAKE_INSTALL_PREFIX=/opt/eosio  -DSecp256k1_ROOT_DIR=/usr/local \
+    && cmake --build /tmp/build --target install \
+       && cd /tmp/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/eosio -P cmake_install.cmake


 FROM ubuntu:16.04
diff --git a/Docker/config.ini b/Docker/config.ini
index 6401c549..11e51c14 100644
--- a/Docker/config.ini
+++ b/Docker/config.ini
@@ -1,6 +1,6 @@
 # File to read Genesis State from
 # genesis-json =
-genesis-json = "/opt/eos/bin/data-dir/genesis.json"
+genesis-json = "/opt/eosio/bin/data-dir/genesis.json"

 # the location of the block log (absolute path or relative to application data dir)
 block-log-dir = "blocks"

Then I run below script and it works fine.

$ docker run --name eosiod -p 8888:8888 -p 9876:9876 -t eosio/eos start_eosiod.sh --genesis-json /opt/eosio/bin/data-dir/genesis.json

@njir That work now, I don't know why still got "COPY failed" yesterday

@njir Thanks buddy, that did the trick :)

@njir but when i use docker-compose up still use path /opt/eos/bin/data-dir/genesis.json
how to change this

eosiod_1   | fc::exists( my->genesis_file ): unable to find genesis file '/opt/eos/bin/data-dir/genesis.json', check --genesis-json argument
eosiod_1   |     {"f":"/opt/eos/bin/data-dir/genesis.json"}
eosiod_1   |     thread-0  chain_plugin.cpp:189 plugin_startup
eosiod_1   |
eosiod_1   |     {"my->genesis_file.generic_string()":"/opt/eos/bin/data-dir/genesis.json"}
eosiod_1   |     thread-0  chain_plugin.cpp:210 plugin_startup

I fixd it XD

if you want use docker-compose up, modify docker-compose.yml

       - "8888"
     volumes:
       - eosiod-data-volume:/opt/eosio/bin/data-dir
+      - ./config.ini:/opt/eosio/bin/data-dir/config.ini

it's just trick. I hope it updates soon

Still failing when running docker build . -t eosio/eos with modifying

-    && cmake --build /tmp/build --target install
+    && cmake --build /tmp/build --target install \
+    && cd /tmp/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/eos -P cmake_install.cmake

and

-genesis-json = "/opt/eos/bin/data-dir/genesis.json"
+genesis-json = "/opt/eosio/bin/data-dir/genesis.json"

This is what I get when running the following:
$ docker run --name eosiod -p 8888:8888 -p 9876:9876 -t eosio/eos start_eosiod.sh arg1 arg2
standard_init_linux.go:195: exec user process caused "no such file or directory"

Anyone?

This should be resolved with PR #1218

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Npizza picture Npizza  ·  3Comments

guaiguaihw picture guaiguaihw  ·  3Comments

christola picture christola  ·  3Comments

bezalel picture bezalel  ·  3Comments

xiaomaogy picture xiaomaogy  ·  3Comments