firt commit

This commit is contained in:
Andy 2018-12-29 13:52:07 +01:00
commit dbc4a0e79e
Signed by: arno
GPG Key ID: 9076D5E6B31AE99C
7 changed files with 104 additions and 0 deletions

1
.dockerignore Normal file
View File

@ -0,0 +1 @@
data/

14
Dockerfile Normal file
View File

@ -0,0 +1,14 @@
FROM ubuntu:bionic
# https://dist.ipfs.io/go-ipfs/v0.4.18/go-ipfs_v0.4.18_linux-amd64.tar.gz
COPY sha512sum.txt .
RUN apt-get -qq update && \
DEBIAN_FRONTEND=noninteractive apt-get -qqy install wget gosu
RUN wget -q -O go-ipfs.tar.gz https://files.nixaid.com/go-ipfs_v0.4.18_linux-amd64.tar.gz && \
sha512sum -c sha512sum.txt && \
tar xf go-ipfs.tar.gz -C /opt && \
rm go-ipfs.tar.gz
RUN find /opt/ -type f -name "ipfs" -exec ln -sv '{}' /usr/local/bin/ \;
COPY ./launch /launch
ENTRYPOINT [ "/bin/sh", "/launch" ]
LABEL maintainer="Andrey Arapov <andrey.arapov@nixaid.com>"

64
README.md Normal file
View File

@ -0,0 +1,64 @@
## IPFS in Docker
### Usage
Start the IPFS:
```
docker-compose up -d
```
This will initialize the node under ``data/.ipfs`` directory.
Then prepare the following functions and add them to your ``~/.bash_aliases`` file:
```
function docker_helper_up() {
command cd ~/git/$1
docker-compose up -d "$1"
command cd ~-
}
function docker_helper_exec_u() {
command cd ~/git/$1
docker-compose exec -w /home/user -u user "$1" "$@"
command cd ~-
}
function ipfs-daemon() {
docker_helper_up ipfs
}
function ipfs() {
docker_helper_exec_u "$FUNCNAME" "$@"
}
```
Now you can use ipfs command as normal:
```
$ ipfs id
$ ipfs swarm addrs --local
$ ipfs pin ls -q --type recursive
$ ipfs ls QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv
$ ipfs cat QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/quick-start
$ mkdir data/public
$ cp ~/Downloads/dog-on-moon.gif data/public
$ ipfs add -rw public
$ ipfs ls Qmdd7jNjEM4RXEnG8Y4ZikaqN6PUJkZ6bZuJZySEaFcuqY
QmagwXL3P4vPKiehXaPzYsHWc2F4hcPpnYEmm1AgQ4QLrU 2177241 dog-on-moon.gif
$ ipfs cat Qmdd7jNjEM4RXEnG8Y4ZikaqN6PUJkZ6bZuJZySEaFcuqY/dog-on-moon.gif | sha256sum
03f9ccb5d2a0e88acb60188e627042ef143c7fe5426c883863e78e66dab908d7 -
$ sha256sum ~/Downloads/dog-on-moon.gif
03f9ccb5d2a0e88acb60188e627042ef143c7fe5426c883863e78e66dab908d7 /home/arno/Downloads/dog-on-moon.gif
$ curl -s https://ipfs.io/ipfs/Qmdd7jNjEM4RXEnG8Y4ZikaqN6PUJkZ6bZuJZySEaFcuqY/dog-on-moon.gif | sha256sum
03f9ccb5d2a0e88acb60188e627042ef143c7fe5426c883863e78e66dab908d7 -
```
### Links
- https://ipfs.github.io/public-gateway-checker/

2
data/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

12
docker-compose.yml Normal file
View File

@ -0,0 +1,12 @@
version: '3.7'
services:
ipfs:
init: true
build: .
network_mode: bridge
volumes:
- ./data:/home/user
cap_add:
- IPC_LOCK # lock memory to prevent sensitive values from being swapped to disk.
shm_size: 128M

10
launch Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -x
#
# Make errors visible upon `docker logs -f steam` command
#
exec 2>&1
id user >/dev/null 2>&1 || useradd -s /usr/sbin/nologin -d /home/user -u ${UID:-1000} user
[ -d /home/user/.ipfs ] || gosu user ipfs init
gosu user ipfs daemon

1
sha512sum.txt Normal file
View File

@ -0,0 +1 @@
ef5b44a0aaed604890c83322ca02228061204085b87b20dd173edfe6b6631fc7a54724d2e00202488c86886992a0d409f43e09f022cdf8b1138f8419cf7614b0 go-ipfs.tar.gz