This repo packages IPFS the lncm way
This repo builds go-ipfs
in a completely reproducible, and auditable way, and packages it into radically minimal Docker containers provided for various CPU architectures.
git-tags
(and most commits) are signed by D8CA1776EB9265491D07CE67F546ECBEA809CB18
git-tags
(and most commits) are opentimestamps
-edamd64
, arm64v8
, arm32v7
, and arm32v6
nofuse
(default) builds IPFS w/o fuse
- only API/RPC/CLI communication is possible, but it requires zero extra config fuse
builds IPFS with fuse
support, and allows for mounting of /ipfs/
, and /ipns/
git-tags
are build automatically, and with an auditable tracegit tag
pushes result Docker image to Docker Hubgit tag
uploads result Go binaries to Github Releaseslnd
version gets overriden, previous one is preserved)final
images are based on Alpine for minimum base sizeupx
git-tag
build is tagged with a unique tag numberNOTE: For an always up-to-date list see: https://hub.docker.com/r/lncm/ipfs/tags
latest
nofuse
v0.4.22
v0.4
v0.4.22-nofuse
v0.4-nofuse
fuse
v0.4.22-fuse
v0.4-fuse
v0.4.21
First pull the image from Docker Hub:
docker pull lncm/ipfs:v0.4.22
NOTE: Running above will automatically choose native architecture of your CPU.
Or, to pull a specific CPU architecture:
docker pull lncm/ipfs:v0.4.22-fuse-arm64
Then to start ipfs, execute:
docker run -it --rm --detach \
-v ~/.ipfs:/data/.ipfs \
-p 4001:4001 \
-p 5001:5001 \
--name ipfs \
lncm/ipfs:v0.4.22
That will runs ipfs
with:
~/.ipfs
on your host machine,UID
1000
4001
is reachable on the localhost for the peer-to-peer communication,5001
is reachable on the localhost for RPC communication,ipfs
,Then to start ipfs, execute:
docker run -it --rm \
-v "~/.ipfs:/data/.ipfs" \
-v "./ipfs:/ipfs/" \
-v "./ipns:/ipns/" \
-p 4001:4001 \
-p 5001:5001 \
--cap-add SYS_ADMIN \
--device /dev/fuse:/dev/fuse:mrw \
--name ipfs \
lncm/ipfs:v0.4.22-fuse
That will runs ipfs
with:
SYS_ADMIN
, and container gains access to device /dev/fuse
~/.ipfs
on your host machine,./ipfs/
, and ./ipns/
in your current directory root
4001
is reachable on the localhost for the peer-to-peer communication,5001
is reachable on the localhost for RPC communication,ipfs
,To issue any commands to a running container, do:
docker exec -it ipfs BINARY COMMAND
Examples:
docker exec -it ipfs ipfs --help
docker exec -it ipfs ipfs --version
docker exec -it ipfs ipfs id
docker exec -it ipfs ipfs swarm peers
docker exec -it ipfs ipfs stats bw
After git-tag
push, the release process is fully automated. That being said there are a few things that need to be done to prepare for the release.