Dockerfile 947 B

1234567891011121314151617181920212223242526272829303132333435
  1. FROM alpine:3.8
  2. RUN find / -xdev -type f -perm /u+s -exec chmod --changes u-s {} \; \
  3. && find / -xdev -type f -perm /g+s -exec chmod --changes g-s {} \;
  4. RUN apk add tini
  5. ENTRYPOINT ["/sbin/tini", "-s", "--"]
  6. # $ readelf -l /tmp/go-ipfs/ipfs | grep 'program interpreter'
  7. # [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  8. RUN apk add libc6-compat
  9. RUN adduser -S ipfs
  10. ENV IPFS_PATH /ipfs-repo
  11. RUN mkdir -m u=rwx,g=,o= $IPFS_PATH && chown ipfs $IPFS_PATH
  12. VOLUME $IPFS_PATH
  13. ENV IPFS_VERSION 0.4.18
  14. ENV IPFS_ARCH amd64
  15. RUN wget -O- https://dist.ipfs.io/go-ipfs/v${IPFS_VERSION}/go-ipfs_v${IPFS_VERSION}_linux-${IPFS_ARCH}.tar.gz \
  16. | tar -xz -C /tmp \
  17. && mv /tmp/go-ipfs/ipfs /usr/local/bin \
  18. && rm -r /tmp/go-ipfs
  19. ENV IPFS_INIT_PROFILE server
  20. COPY entrypoint.sh /
  21. RUN chmod a=rx /entrypoint.sh
  22. ENTRYPOINT ["/entrypoint.sh"]
  23. USER ipfs
  24. EXPOSE 4001/tcp
  25. # ipfs http gateway
  26. EXPOSE 8080/tcp
  27. CMD ["ipfs", "daemon"]