[VAL-93] Docker command fails in blucon.sh Created: 19/Dec/19 Updated: 20/Dec/19 Resolved: 20/Dec/19 |
|
| Status: | Done |
| Project: | Validation |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Medium |
| Reporter: | Juha Kosonen | Assignee: | Alex Antone |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | 0 minutes | ||
| Time Spent: | 1 hour | ||
| Original Estimate: | Not Specified | ||
| Description |
|
An attempt to run a test via blucon.sh fails due to docker executable is not found
[cloudadmin@controller-1 validation]$ bash ./bluval/blucon.sh -l os rec AKRAINO_HOME not available. Setting... AKRAINO_HOME=/home/cloudadmin/juha Building docker image Sending build context to Docker daemon 40.96kB Step 1/6 : FROM python:3.6-alpine3.9 ---> d6f5a1298164 Step 2/6 : RUN apk --no-cache add --update gcc git libc-dev libffi libffi-dev make openssl-dev ---> Using cache ---> 11848faf90db Step 3/6 : RUN git clone https://gerrit.akraino.org/r/validation /opt/akraino/validation ---> Using cache ---> 55304eb30ca4 Step 4/6 : RUN pip3 install -r /opt/akraino/validation/bluval/requirements.txt ---> Using cache ---> 14f1449416f2 Step 5/6 : WORKDIR /opt/akraino/validation ---> Using cache ---> 9eaf0e8c555c Step 6/6 : ENTRYPOINT ["python3", "bluval/blucon.py"] ---> Using cache ---> ea7d60b3c94c Successfully built ea7d60b3c94c Successfully tagged akraino/validation:blucon-master + docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /home/cloudadmin/juha/results:/opt/akraino/results -v /home/cloudadmin/juha/validation:/opt/akraino/validation akraino/validation:blucon-master -l os rec /bin/sh: docker: not found Invoking ["docker run --rm -v /home/cloudadmin/juha/validation/tests/variables.yaml:/opt/akraino/validation/tests/variables.yaml -v /home/cloudadmin/juha/validation/bluval:/opt/akraino/validation/bluval -v /home/cloudadmin/juha/results:/opt/akraino/results -v /home/cloudadmin/.ssh:/root/.ssh akraino/validation:os-latest /bin/sh -c 'cd /opt/akraino/validation && python bluval/bluval.py -l os rec'"] [cloudadmin@controller-1 validation]$
The binary is there even reported as missing [cloudadmin@controller-1 juha]$ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /home/cloudadmin/juha/results:/opt/akraino/results -v /home/cloudadmin/juha/validation:/opt/akraino/validation --entrypoint "/bin/sh" akraino/validation:blucon-local /opt/akraino/validation # docker --version /bin/sh: docker: not found /opt/akraino/validation # which docker /usr/bin/docker /opt/akraino/validation # ls -l /usr/bin/docker -rwxr-xr-x 1 root root 88960560 Oct 8 00:59 /usr/bin/docker /opt/akraino/validation # apk add strace fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz (1/1) Installing strace (4.24-r0) Executing busybox-1.29.3-r10.trigger OK: 157 MiB in 57 packages /opt/akraino/validation # strace docker execve("/usr/bin/docker", ["docker"], 0x7ffede50eab0 /* 12 vars */) = -1 ENOENT (No such file or directory) writev(2, [{iov_base="strace: exec: No such file or di"..., iov_len=40}, {iov_base=NULL, iov_len=0}], 2strace: exec: No such file or directory ) = 40 getpid() = 14 exit_group(1) = ? +++ exited with 1 +++ /opt/akraino/validation # /opt/akraino/validation # apk add file fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz (1/2) Installing libmagic (5.36-r1) (2/2) Installing file (5.36-r1) Executing busybox-1.29.3-r10.trigger OK: 161 MiB in 58 packages /opt/akraino/validation # file /usr/bin/docker /usr/bin/docker: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, Go BuildID=BvxpKLIksLa4rJ-2o4is/xfihYlupZ-rXT6bnzJZn/iVlELuoX3kMBzLCeIYHQ/TAhPdOSUFAroknYT0r3i, BuildID[sha1]=1555a9dd23403d88b057d4467816f02849d59681, not stripped Maybe this is due to fact that the bind mounted docker binary is dynamically linked. The command works when docker is installed in container [cloudadmin@controller-1 juha]$ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock -v /home/cloudadmin/juha/results:/opt/akraino/results -v /home/cloudadmin/juha/validation:/opt/akraino/validation --entrypoint "/bin/sh" akraino/validation:blucon-local /opt/akraino/validation # docker /bin/sh: docker: not found /opt/akraino/validation # apk add docker fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz (1/10) Installing libseccomp (2.3.3-r1) (2/10) Installing runc (1.0.0_rc8-r0) (3/10) Installing containerd (1.2.7-r0) (4/10) Installing libmnl (1.0.4-r0) (5/10) Installing jansson (2.11-r0) (6/10) Installing libnftnl-libs (1.1.1-r0) (7/10) Installing iptables (1.6.2-r1) (8/10) Installing tini-static (0.18.0-r0) (9/10) Installing device-mapper-libs (2.02.182-r0) (10/10) Installing docker (18.09.8-r0) Executing docker-18.09.8-r0.pre-install Executing busybox-1.29.3-r10.trigger OK: 410 MiB in 66 packages /opt/akraino/validation # docker --version Docker version 18.09.8-ce, build 0dd43dd87fd530113bf44c9bba9ad8b20ce4637f /opt/akraino/validation # apk add file (1/2) Installing libmagic (5.36-r1) (2/2) Installing file (5.36-r1) Executing busybox-1.29.3-r10.trigger OK: 415 MiB in 68 packages /opt/akraino/validation # file /usr/bin/docker /usr/bin/docker: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, Go BuildID=mLIj9EPTIQSMBpASeb8V/zKyFT8LPh3WB1psMXkVj/8F7voi3AHUkhaPKv62h6/T_NZUL5vGDhKtdwDthjf, stripped |
| Comments |
| Comment by Alex Antone [ 20/Dec/19 ] |
|
Fixed and merged: |
| Comment by Alex Antone [ 19/Dec/19 ] |
|
The problem was not about the docker binary not existing, but instead libpthread, one of the shared libs was not present. /opt/akraino/validation # ldd /usr/bin/docker /opt/akraino/validation # find /usr/lib | grep libpthread libpthread.so.0 is available in the libc6-compat package |
| Comment by Cristina Pauna [ 19/Dec/19 ] |
|
We are aware of the issue, will try to get a fix for it today. |