This:
* Allows choosing the consensus for the automatic "init" on Docker with
IPFS_CLUSTER_CONSENSUS.
* Removes IPFS_PATH and the sed replacements for 0.0.0.0 on RestAPI and
Ipfsproxy endpoints because these are easily supported by setting env vars
correctly and pose some security risk when running with net=host.
* Brings up to date Dockerfile-test and Dockerfile-bundle, even if mostly
unused.
Fixes#865.
This makes the necessary changes so that consensu is selected on "init" with a
flag set, by default, to "crdt". This generates only a "crdt" or a "raft"
section, not both.
If the configuration file has a "raft" section, "raft" will be used to start
the daemon. If it has a "crdt" section, "crdt" will be used. If it has none or
both sections, an error will happen.
This also affects "state *" commands, which will now autoselect how to work
from the existing configuration.
It has a few implications to launch a raft peer when you wanted to do crdt and vice-versa.
Same when exporting and exporting states.
Users starting cluster peers should be explicit about their consensus choice.
Also, if we ever want to make `crdt` the default, we can't do that before
making `raft` non-default first. I don't like to break things but otherwise
the experience for new users wanting to try crdts might be aweful.
The main container will now run only ipfs-cluster-service.
A new ipfs-cluster-bundle container is built by Dockerfile-bundle
which will provide ipfs-cluster+ipfs.
Fixes#197
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
This used to work. Even if it's been surfaced by 4a8759939 we were
extensively testing the Dockerfile before that release.
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
After changes on how the final docker image for go-ipfs is generated,
our Dockerfiles failed to build.
The new version is inspired on go-ipfs Dockerfile. It takes advantage
of docker >= v17.06 which allows multi-stage Dockerfiles with
several FROM directives and COPY --from. This allows build freely on a
first stage, without thinking of cleaning up, and then just copy the
final artifacts to a second, minimal image.
The Dockerfile-test is similarly updated. Minor changes have been
applied to the entrypoints.
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
* First draft of test dockerfile build
* Test dockerfile, build works, container runs and cluster tests go through
* Removed fifo for output
* renaming dockerfile
* Adding functionality for test 12
Added scripts and entrypoint mods to the testing docker image to allow for random shut down and startup
(both SIGSTOP and SIGINT) of the ipfs-cluster-service.
* test docker image ready for tests 12 and 13
* Added cluster daemon respawn
to docker image
* First draft of test dockerfile build
* Test dockerfile, build works, container runs and cluster tests go through
* Removed fifo for output
* renaming dockerfile
* Adding functionality for test 12
Added scripts and entrypoint mods to the testing docker image to allow for random shut down and startup
(both SIGSTOP and SIGINT) of the ipfs-cluster-service.
* test docker image ready for tests 12 and 13
* First draft of test dockerfile build
* Test dockerfile, build works, container runs and cluster tests go through
* Removed fifo for output
* renaming dockerfile
Updates dockerfile and entrypoint script to have the same behavior the ipfs-go docker build
moved to in 3477. This fixes a bug where the cluster entrypoint script does not have
sufficient permissions to access /data/ipfs. The entrypoint also now launches a process with
tini