mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
* Add initialization directory support to Docker image * Add sharness test, fix bugs in init script Fixed in init script: - Added some missing quotes around expansions - Fixed INIT_ARGS to not pass any args if IPFS_PROFILE isn't specified - Use printf instead of "echo -e" - Only run scripts in top-level of init dir - Handle filenames correctly when finding init scripts (by using find + xargs) * chore: docker cleanup cleans up containers and images (useful when run on developer machine) * remove container init documentation from README There is already IPFS Docker documentation where this should live: https://docs.ipfs.io/how-to/run-ipfs-inside-docker/ Co-authored-by: Caian <caian@ggaunicamp.com> Co-authored-by: Marcin Rataj <lidel@lidel.org> Co-authored-by: Gus Eggert <gus@gus.dev>
56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
user=ipfs
|
|
repo="$IPFS_PATH"
|
|
|
|
if [ "$(id -u)" -eq 0 ]; then
|
|
echo "Changing user to $user"
|
|
# ensure folder is writable
|
|
su-exec "$user" test -w "$repo" || chown -R -- "$user" "$repo"
|
|
# restart script with new privileges
|
|
exec su-exec "$user" "$0" "$@"
|
|
fi
|
|
|
|
# 2nd invocation with regular user
|
|
ipfs version
|
|
|
|
|
|
if [ -e "$repo/config" ]; then
|
|
echo "Found IPFS fs-repo at $repo"
|
|
else
|
|
ipfs init ${IPFS_PROFILE:+"--profile=$IPFS_PROFILE"}
|
|
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
|
|
ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
|
|
|
|
# Set up the swarm key, if provided
|
|
|
|
SWARM_KEY_FILE="$repo/swarm.key"
|
|
SWARM_KEY_PERM=0400
|
|
|
|
# Create a swarm key from a given environment variable
|
|
if [ -n "$IPFS_SWARM_KEY" ] ; then
|
|
echo "Copying swarm key from variable..."
|
|
printf "%s\n" "$IPFS_SWARM_KEY" >"$SWARM_KEY_FILE" || exit 1
|
|
chmod $SWARM_KEY_PERM "$SWARM_KEY_FILE"
|
|
fi
|
|
|
|
# Unset the swarm key variable
|
|
unset IPFS_SWARM_KEY
|
|
|
|
# Check during initialization if a swarm key was provided and
|
|
# copy it to the ipfs directory with the right permissions
|
|
# WARNING: This will replace the swarm key if it exists
|
|
if [ -n "$IPFS_SWARM_KEY_FILE" ] ; then
|
|
echo "Copying swarm key from file..."
|
|
install -m $SWARM_KEY_PERM "$IPFS_SWARM_KEY_FILE" "$SWARM_KEY_FILE" || exit 1
|
|
fi
|
|
|
|
# Unset the swarm key file variable
|
|
unset IPFS_SWARM_KEY_FILE
|
|
fi
|
|
|
|
find /container-init.d -maxdepth 1 -type f -iname '*.sh' -print0 | sort -z | xargs -n 1 -0 -r container_init_run
|
|
|
|
exec ipfs "$@"
|