From d0ed1382463b2d8b71c53f2247849f8bed4151e7 Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Wed, 3 Oct 2018 17:15:58 -0700 Subject: [PATCH] fix(Dockerfile): Allow ipfs mount in Docker container fixes #4329 License: MIT Signed-off-by: hannahhoward --- Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Dockerfile b/Dockerfile index 17e3c1c90b3..7a99e69c146 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,6 +33,9 @@ RUN set -x \ # Get the TLS CA certificates, they're not provided by busybox. RUN apt-get update && apt-get install -y ca-certificates +# Install FUSE +RUN apt-get update && apt-get install -y fuse + # Now comes the actual target image, which aims to be as small as possible. FROM busybox:1-glibc MAINTAINER Lars Gierth @@ -43,8 +46,12 @@ COPY --from=0 $SRC_DIR/cmd/ipfs/ipfs /usr/local/bin/ipfs COPY --from=0 $SRC_DIR/bin/container_daemon /usr/local/bin/start_ipfs COPY --from=0 /tmp/su-exec/su-exec /sbin/su-exec COPY --from=0 /tmp/tini /sbin/tini +COPY --from=0 /bin/fusermount /usr/local/bin/fusermount COPY --from=0 /etc/ssl/certs /etc/ssl/certs +# Add suid bit on fusermount so it will run properly +RUN chmod 4755 /usr/local/bin/fusermount + # This shared lib (part of glibc) doesn't seem to be included with busybox. COPY --from=0 /lib/x86_64-linux-gnu/libdl-2.24.so /lib/libdl.so.2 @@ -63,6 +70,10 @@ RUN mkdir -p $IPFS_PATH \ && adduser -D -h $IPFS_PATH -u 1000 -G users ipfs \ && chown ipfs:users $IPFS_PATH +# Create mount points for `ipfs mount` command +RUN mkdir /ipfs /ipns \ + && chown ipfs:users /ipfs /ipns + # Expose the fs-repo as a volume. # start_ipfs initializes an fs-repo if none is mounted. # Important this happens after the USER directive so permission are correct.