ipfs v0.14.0 (kubo)

This commit is contained in:
Yann Autissier 2022-08-24 11:34:07 +02:00
parent 069713b923
commit f212978388
22 changed files with 157 additions and 149 deletions

View File

@ -1,5 +1,5 @@
ARG IPFS_VERSION=0.13.0
FROM ipfs/go-ipfs:v${IPFS_VERSION} as dist
ARG IPFS_VERSION=0.14.0
FROM ipfs/kubo:v${IPFS_VERSION} as dist
LABEL maintainer aynic.os <support+docker@asycn.io>
ARG DOCKER_BUILD_DIR

View File

@ -1,4 +1,5 @@
#!/bin/sh
[ -n "${DEBUG:-}" -a "${DEBUG:-}" != "false" ] && set -x
set -e
## fix resource manager fatal error on arm64/linux with 2Gb RAM
@ -20,7 +21,7 @@ echo "${IPFS_ADDRESSES_API_INET4}" |awk -F. '{ for ( i=1; i<=4; i++ ) if ($i >=
# check ${IPFS_ADDRESSES_API_PORT} format
[ "${IPFS_ADDRESSES_API_PORT}" -eq "${IPFS_ADDRESSES_API_PORT}" ] 2>/dev/null && [ "${IPFS_ADDRESSES_API_PORT}" -ge 1 ] && [ "${IPFS_ADDRESSES_API_PORT}" -le 65535 ] \
|| unset IPFS_ADDRESSES_API_PORT
ipfs config Addresses.Api "${IPFS_ADDRESSES_API:-/ip4/${IPFS_ADDRESSES_API_INET4:-127.0.0.1}/tcp/${IPFS_ADDRESSES_API_PORT:-5001}}"
ipfs config Addresses.API "${IPFS_ADDRESSES_API:-/ip4/${IPFS_ADDRESSES_API_INET4:-127.0.0.1}/tcp/${IPFS_ADDRESSES_API_PORT:-5001}}"
## gateway address
# search for ip address of $(hostname).${IPFS_ADDRESSES_GATEWAY_DOMAIN}
@ -86,3 +87,4 @@ ipfs config --json Gateway.HTTPHeaders "${IPFS_GATEWAY_HTTPHEADERS:-{
## REMOVE IPFS BOOTSTRAP for private usage
[ ${IPFS_NETWORK:-public} = "public" ] || ipfs bootstrap rm --all
[ ${IPFS_NETWORK:-public} = "private" ] && export LIBP2P_FORCE_PNET=1 ||:

View File

@ -40,15 +40,15 @@ RUN git clone https://github.com/ingydotnet/git-subrepo \
&& cd .. \
&& rm -rf git-subrepo
ARG IPFS_VERSION=0.13.0
ARG IPFS_VERSION=0.14.0
RUN { OS="$(echo ${OPERATING_SYSTEM} |awk '{print tolower($0)}')"; \
ARCH="$(echo ${PROCESSOR_ARCHITECTURE})"; \
wget -qO - https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.${OS}.${ARCH}.tar.xz \
|tar --strip-components 1 -C /usr/local/bin -xJf - shellcheck-stable/shellcheck; } \
&& { ARCH="$(echo ${PROCESSOR_ARCHITECTURE} |awk '/x86_64/ {print "amd64"}; /aarch64/ {print "arm64"}')"; \
wget -qO - https://github.com/ipfs/go-ipfs/releases/download/v${IPFS_VERSION}/go-ipfs_v${IPFS_VERSION}_${OS}-${ARCH}.tar.gz \
|tar --strip-components 1 -C /usr/local/bin -xzf - go-ipfs/ipfs; } \
wget -qO - https://github.com/ipfs/kubo/releases/download/v${IPFS_VERSION}/kubo_v${IPFS_VERSION}_${OS}-${ARCH}.tar.gz \
|tar --strip-components 1 -C /usr/local/bin -xzf - kubo/ipfs; } \
&& mkdir -p /usr/local/lib/shellspec \
&& wget -qO - https://github.com/shellspec/shellspec/archive/refs/heads/master.tar.gz \
|tar --strip-components 1 -C /usr/local/lib/shellspec -xzf - \

View File

@ -2,7 +2,9 @@ FROM alpine:latest as dist
LABEL maintainer aynic.os <support+docker@asycn.io>
ARG DOCKER_BUILD_DIR
ENV PACKER_VERSION=1.6.6
ARG ARCH="$(uname -m |awk '/x86_64/ {print "amd64"}; /aarch64/ {print "arm64"}')"
ARG OS="$(uname -o |awk '{print tolower($0)}')"
ARG PACKER_VERSION=1.6.6
RUN apk --no-cache add \
ansible \

View File

@ -14,6 +14,7 @@ ENV GIT_COMMITTER_EMAIL=${GIT_AUTHOR_EMAIL}
RUN apt-get update \
&& apt-get -fy install \
bash \
cron \
curl \
gettext \
git \
@ -23,22 +24,31 @@ RUN apt-get update \
nano \
netcat-openbsd \
openssh-client \
python3 \
screen \
socat \
sudo \
tmux \
vim-nox \
wget \
xz-utils
ARG IPFS_VERSION=0.13.0
ADD https://git.p2p.legal/axiom-team/astrXbian/raw/branch/master/include.sh /
ADD https://git.p2p.legal/axiom-team/astrXbian/raw/branch/master/install.sh /
RUN chmod +r /include.sh \
&& chmod +rx /install.sh \
&& bash -c '. /include.sh && install_requirements'
ARG IPFS_VERSION=0.14.0
RUN { OS="$(echo ${OPERATING_SYSTEM} |awk '{print tolower($0)}')"; \
ARCH="$(echo ${PROCESSOR_ARCHITECTURE})"; \
wget -qO - https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.${OS}.${ARCH}.tar.xz \
|tar --strip-components 1 -C /usr/local/bin -xJf - shellcheck-stable/shellcheck; } \
&& { ARCH="$(echo ${PROCESSOR_ARCHITECTURE} |awk '/x86_64/ {print "amd64"}; /aarch64/ {print "arm64"}')"; \
wget -qO - https://github.com/ipfs/go-ipfs/releases/download/v${IPFS_VERSION}/go-ipfs_v${IPFS_VERSION}_${OS}-${ARCH}.tar.gz \
|tar --strip-components 1 -C /usr/local/bin -xzf - go-ipfs/ipfs; } \
&& { OS="$(echo ${OPERATING_SYSTEM} |awk '{print tolower($0)}')"; \
ARCH="$(echo ${PROCESSOR_ARCHITECTURE} |awk '/x86_64/ {print "amd64"}; /aarch64/ {print "arm64"}')"; \
wget -qO - https://github.com/ipfs/kubo/releases/download/v${IPFS_VERSION}/kubo_v${IPFS_VERSION}_${OS}-${ARCH}.tar.gz \
|tar --strip-components 1 -C /usr/local/bin -xzf - kubo/ipfs; } \
&& mkdir -p /usr/local/lib/shellspec \
&& wget -qO - https://github.com/shellspec/shellspec/archive/refs/heads/master.tar.gz \
|tar --strip-components 1 -C /usr/local/lib/shellspec -xzf - \
@ -47,11 +57,6 @@ RUN { OS="$(echo ${OPERATING_SYSTEM} |awk '{print tolower($0)}')"; \
ADD https://raw.github.com/kvz/cronlock/master/cronlock /usr/local/bin/cronlock
RUN chmod +rx /usr/local/bin/cronlock
ADD https://git.p2p.legal/axiom-team/astrXbian/raw/branch/master/include.sh /
ADD https://git.p2p.legal/axiom-team/astrXbian/raw/branch/master/install.sh /
RUN chmod +r /include.sh \
&& chmod +rx /install.sh
COPY ${DOCKER_BUILD_DIR}/docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["start"]
@ -66,11 +71,6 @@ ENV UID=${UID}
ENV GID=${UID}
ENV USER=${USER}
RUN apt-get -fy install \
cron \
python3 \
sudo
# If we provide a numeric UID
RUN [ "$UID" -eq "$UID" ] 2>/dev/null \
# Remove user with $UID if it is not our $USER
@ -106,8 +106,6 @@ USER $USER
ENV SHELL=${SHELL}
WORKDIR /home/$USER
RUN mkdir ~/.zen ~/astroport
# git config
RUN mkdir -p ~/.config/git \
&& echo -e "\
@ -120,4 +118,4 @@ RUN mkdir -p ~/.config/git \
Thumbs.db\n\
" > ~/.config/git/ignore
RUN bash -c '. /include.sh && install_requirements'
RUN mkdir ~/.zen ~/astroport

View File

@ -182,7 +182,7 @@ stack-%:
$(eval command := $(lastword $(subst -, ,$*)))
$(if $(findstring -,$*), \
$(if $(filter $(command),$(filter-out %-%,$(patsubst docker-compose-%,%,$(filter docker-compose-%,$(MAKE_TARGETS))))), \
$(call make,docker-compose-$(command) STACK="$(stack)",,ARGS COMPOSE_IGNORE_ORPHANS SERVICE User node)))
$(call make,$(command) STACK="$(stack)",,ARGS COMPOSE_IGNORE_ORPHANS SERVICE User node)))
# target start app-start: Start application dockers
# on local host

View File

@ -23,7 +23,7 @@ ENV_VARS += APP_DIR APP_DOMAIN APP_HOST APP_PATH APP_URL
MOUNT_NFS ?= false
NFS_CONFIG ?= addr=$(NFS_HOST),actimeo=3,intr,noacl,noatime,nocto,nodiratime,nolock,soft,rsize=32768,wsize=32768,tcp,rw,vers=3
NFS_HOST ?= host.docker.internal
PROJECT_NAME ?= $(USER)_$(ENV)_$(APP)
PROJECT_NAME ?= $(USER)_$(APP)_$(ENV)
SERVICE_NAME ?= $(COMPOSE_SERVICE_NAME)
SERVICE_VERSION ?= $(BUILD_DATE)-$(VERSION)
SERVICES ?= $(DOCKER_SERVICES)

View File

@ -11,7 +11,7 @@ ssh: ssh-get-PrivateIpAddress-$(SERVER_NAME) ## Connect to first remote host
ssh-add: DOCKER_RUN_OPTIONS += -it
ssh-add: ssh-key
$(eval SSH_PRIVATE_KEYS := $(foreach file,$(SSH_DIR)/id_rsa $(filter-out $(wildcard $(SSH_DIR)/id_rsa),$(wildcard $(SSH_DIR)/*)),$(if $(shell grep "PRIVATE KEY" $(file) 2>/dev/null),$(notdir $(file)))))
$(call run,sh -c '$(foreach file,$(patsubst %,$(SSH_DIR)/%,$(SSH_PRIVATE_KEYS)),ssh-add -l |grep -qw $$(ssh-keygen -lf $(file) 2>/dev/null |awk '\''{print $$2}'\'') 2>/dev/null || $(RUN) ssh-add $(file) ||: &&) true',-v $(SSH_DIR):$(SSH_DIR) $(DOCKER_IMAGE) )
$(call run,sh -c '$(foreach file,$(patsubst %,$(SSH_DIR)/%,$(SSH_PRIVATE_KEYS)),ssh-add -l |grep -qw $$(ssh-keygen -lf $(file) 2>/dev/null |awk '\''{print $$2}'\'') 2>/dev/null || $(RUN) ssh-add $(file) ||: &&) true',-v $(SSH_DIR):$(SSH_DIR) $(USER_DOCKER_IMAGE) )
# target ssh-connect: Call ssh-connect make connect SERVICE
.PHONY: ssh-connect
@ -22,7 +22,7 @@ ssh-connect: ssh-get-PrivateIpAddress-$(SERVER_NAME)
.PHONY: ssh-del
ssh-del:
$(eval SSH_PRIVATE_KEYS := $(foreach file,$(SSH_DIR)/id_rsa $(filter-out $(wildcard $(SSH_DIR)/id_rsa),$(wildcard $(SSH_DIR)/*)),$(if $(shell grep "PRIVATE KEY" $(file) 2>/dev/null),$(notdir $(file)))))
$(call run,sh -c '$(foreach file,$(patsubst %,$(SSH_DIR)/%,$(SSH_PRIVATE_KEYS)),ssh-add -l |grep -qw $$(ssh-keygen -lf $(file) 2>/dev/null |awk '\''{print $$2}'\'') 2>/dev/null && $(RUN) ssh-add -d $(file) ||: &&) true',-v $(SSH_DIR):$(SSH_DIR) $(DOCKER_IMAGE) )
$(call run,sh -c '$(foreach file,$(patsubst %,$(SSH_DIR)/%,$(SSH_PRIVATE_KEYS)),ssh-add -l |grep -qw $$(ssh-keygen -lf $(file) 2>/dev/null |awk '\''{print $$2}'\'') 2>/dev/null && $(RUN) ssh-add -d $(file) ||: &&) true',-v $(SSH_DIR):$(SSH_DIR) $(USER_DOCKER_IMAGE) )
# target ssh-exec: Call ssh-exec make exec SERVICE ARGS
.PHONY: ssh-exec

View File

@ -1,8 +1,8 @@
DOCKER_ENV_ARGS ?= $(docker_env_args)
DOCKER_EXEC_OPTIONS ?=
DOCKER_GID ?= $(call gid,docker)
DOCKER_IMAGE ?= $(USER_DOCKER_REPOSITORY)/myos:${DOCKER_IMAGE_TAG}
DOCKER_NAME ?= $(USER_COMPOSE_PROJECT_NAME)_myos
DOCKER_IMAGE ?= $(USER_DOCKER_IMAGE)
DOCKER_NAME ?= $(USER_DOCKER_NAME)
DOCKER_NETWORK ?= $(DOCKER_NETWORK_PRIVATE)
DOCKER_NETWORK_PRIVATE ?= $(USER_COMPOSE_PROJECT_NAME)
DOCKER_NETWORK_PUBLIC ?= $(NODE_COMPOSE_PROJECT_NAME)
@ -13,14 +13,17 @@ DOCKER_RUN_OPTIONS += --rm
# DOCKER_RUN_VOLUME: options -v of `docker run` command to mount additionnal volumes
DOCKER_RUN_VOLUME += -v /var/run/docker.sock:/var/run/docker.sock
DOCKER_RUN_WORKDIR ?= -w $(PWD)
DOCKER_VOLUME ?= $(USER_COMPOSE_PROJECT_NAME)_myos
ENV_VARS += NODE_COMPOSE_PROJECT_NAME USER_COMPOSE_PROJECT_NAME NODE_COMPOSE_SERVICE_NAME USER_COMPOSE_SERVICE_NAME DOCKER_IMAGE DOCKER_NAME DOCKER_NETWORK_PRIVATE DOCKER_NETWORK_PUBLIC USER_DOCKER_REPOSITORY NODE_DOCKER_REPOSITORY DOCKER_VOLUME
ENV_VARS += DOCKER_NETWORK_PRIVATE DOCKER_NETWORK_PUBLIC NODE_COMPOSE_PROJECT_NAME NODE_COMPOSE_SERVICE_NAME NODE_DOCKER_REPOSITORY NODE_DOCKER_VOLUME USER_COMPOSE_PROJECT_NAME USER_COMPOSE_SERVICE_NAME USER_DOCKER_IMAGE USER_DOCKER_NAME USER_DOCKER_REPOSITORY USER_DOCKER_VOLUME
NODE_COMPOSE_PROJECT_NAME ?= node
NODE_COMPOSE_SERVICE_NAME ?= $(subst _,-,$(NODE_COMPOSE_PROJECT_NAME))
NODE_DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(NODE_COMPOSE_PROJECT_NAME)))
NODE_DOCKER_VOLUME ?= $(NODE_COMPOSE_PROJECT_NAME)_myos
USER_COMPOSE_PROJECT_NAME ?= $(USER)_$(ENV)
USER_COMPOSE_SERVICE_NAME ?= $(subst _,-,$(USER_COMPOSE_PROJECT_NAME))
USER_DOCKER_IMAGE ?= $(USER_DOCKER_REPOSITORY)/myos:${DOCKER_IMAGE_TAG}
USER_DOCKER_NAME ?= $(USER_COMPOSE_PROJECT_NAME)-myos
USER_DOCKER_REPOSITORY ?= $(subst -,/,$(subst _,/,$(USER_COMPOSE_PROJECT_NAME)))
USER_DOCKER_VOLUME ?= $(USER_COMPOSE_PROJECT_NAME)_myos
# https://github.com/docker/libnetwork/pull/2348
ifeq ($(OPERATING_SYSTEM),Darwin)
@ -47,7 +50,7 @@ endif
ifneq ($(DOCKER_RUN),)
DOCKER_SSH_AUTH := -e SSH_AUTH_SOCK=/tmp/ssh-agent/socket -v $(DOCKER_VOLUME):/tmp/ssh-agent
DOCKER_SSH_AUTH := -e SSH_AUTH_SOCK=/tmp/ssh-agent/socket -v $(USER_DOCKER_VOLUME):/tmp/ssh-agent
# function docker-run: Run docker image 2 with arg 1
define docker-run

View File

@ -8,7 +8,7 @@ services:
- GID=${GID}
- GIT_AUTHOR_NAME=${GIT_AUTHOR_NAME}
- GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL}
- IPFS_VERSION=0.13.0
- IPFS_VERSION=${IPFS_VERSION}
- UID=${UID}
- USER=${USER}
- SSH_BASTION_HOSTNAME=${SSH_BASTION_HOSTNAME}
@ -17,7 +17,7 @@ services:
- SSH_PRIVATE_IP_RANGE=${SSH_PRIVATE_IP_RANGE}
context: ../..
dockerfile: docker/myos/Dockerfile
container_name: ${DOCKER_NAME}
container_name: ${USER_DOCKER_NAME}
environment:
- ENV=${ENV}
- RC_00_SOURCE=${USER_MYOS_RC_SOURCE}
@ -27,22 +27,29 @@ services:
- RC_04_TMUX_ATTACH=${USER_MYOS_RC_TMUX_ATTACH}
- RC_05_SCREEN_ATTACH=${USER_MYOS_RC_SCREEN_ATTACH}
- SHELL=${DOCKER_SHELL}
image: ${DOCKER_IMAGE}
image: ${USER_DOCKER_IMAGE}
networks:
- private
restart: always
user: ${UID}:${GID}
volumes:
# - ${HOME}:${HOME}:cached
- ${MONOREPO_DIR}:${MONOREPO_DIR}:cached
- monorepo:${MONOREPO_DIR}:cached
- myos:/tmp/ssh-agent
# - /var/run/docker.sock:/var/run/docker.sock
working_dir: ${MONOREPO_DIR}
volumes:
monorepo:
driver: local
driver_opts:
type: none
device: ${MONOREPO_DIR}
o: bind
name: ${USER_COMPOSE_PROJECT_NAME}
myos:
external: true
name: ${DOCKER_VOLUME}
name: ${USER_DOCKER_VOLUME}
networks:
private:

View File

@ -1,3 +1,7 @@
ENV_VARS += IPFS_PROFILE IPFS_VERSION
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(PROCESSOR_ARCHITECTURE)),lowpower,server)
IPFS_VERSION ?= 0.14.0
.PHONY: bootstrap-stack-ipfs
bootstrap-stack-ipfs: ~/.ipfs

View File

@ -5,51 +5,50 @@ services:
build:
args:
- DOCKER_BUILD_DIR=docker/ipfs
- IPFS_VERSION=0.13.0
- IPFS_VERSION=${IPFS_VERSION}
- UID=${UID}
context: ../..
dockerfile: docker/ipfs/Dockerfile
command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} --enable-gc --migrate
cpus: 0.5
environment:
- IPFS_ADDRESSES_API=${IPFS_ADDRESSES_API}
- IPFS_ADDRESSES_API_DOMAIN=${IPFS_ADDRESSES_API_DOMAIN}
- IPFS_ADDRESSES_API_INET4=${IPFS_ADDRESSES_API_INET4}
- IPFS_ADDRESSES_API_PORT=${IPFS_ADDRESSES_API_PORT}
- IPFS_ADDRESSES_GATEWAY=${IPFS_ADDRESSES_GATEWAY}
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${IPFS_ADDRESSES_GATEWAY_DOMAIN}
- IPFS_ADDRESSES_GATEWAY_INET4=${IPFS_ADDRESSES_GATEWAY_INET4}
- IPFS_ADDRESSES_GATEWAY_PORT=${IPFS_ADDRESSES_GATEWAY_PORT}
- IPFS_API_HTTPHEADERS=${IPFS_API_HTTPHEADERS}
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_API_HTTPHEADERS_ACA_CREDENTIALS}
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${IPFS_API_HTTPHEADERS_ACA_HEADERS}
- IPFS_API_HTTPHEADERS_ACA_METHODS=${IPFS_API_HTTPHEADERS_ACA_METHODS}
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${IPFS_API_HTTPHEADERS_ACA_ORIGIN}
- IPFS_BOOTSTRAP=${IPFS_BOOTSTRAP}
- IPFS_DATASTORE_GCPERIOD=${IPFS_DATASTORE_GCPERIOD}
- IPFS_DISK_USAGE_PERCENT=${IPFS_DISK_USAGE_PERCENT}
- IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT}
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${IPFS_EXPERIMENTAL_FILESTOREENABLED}
- IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${IPFS_EXPERIMENTAL_GRAPHSYNCENABLED}
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING}
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${IPFS_EXPERIMENTAL_P2PHTTPPROXY}
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${IPFS_EXPERIMENTAL_STRATEGICPROVIDING}
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${IPFS_EXPERIMENTAL_URLSTOREENABLED}
- IPFS_IPNS_REPUBLISHPERIOD=${IPFS_IPNS_REPUBLISHPERIOD}
- IPFS_IPNS_RECORDLIFETIME=${IPFS_IPNS_RECORDLIFETIME}
- IPFS_IPNS_USEPUBSUB=${IPFS_IPNS_USEPUBSUB}
- IPFS_LOGGING=${IPFS_LOGGING}
- IPFS_PROFILE=${IPFS_PROFILE}
- IPFS_PUBSUB_ENABLE=${IPFS_PUBSUB_ENABLE}
- IPFS_PUBSUB_ROUTER=${IPFS_PUBSUB_ROUTER}
- IPFS_ROUTING_TYPE=${IPFS_ROUTING_TYPE}
- IPFS_SWARM_CONNMGR_HIGHWATER=${IPFS_SWARM_CONNMGR_HIGHWATER}
- IPFS_SWARM_CONNMGR_LOWWATER=${IPFS_SWARM_CONNMGR_LOWWATER}
- IPFS_ADDRESSES_API=${IPFS_ADDRESSES_API:-}
- IPFS_ADDRESSES_API_DOMAIN=${IPFS_ADDRESSES_API_DOMAIN:-}
- IPFS_ADDRESSES_API_INET4=${IPFS_ADDRESSES_API_INET4:-}
- IPFS_ADDRESSES_API_PORT=${IPFS_ADDRESSES_API_PORT:-}
- IPFS_ADDRESSES_GATEWAY=${IPFS_ADDRESSES_GATEWAY:-}
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
- IPFS_ADDRESSES_GATEWAY_INET4=${IPFS_ADDRESSES_GATEWAY_INET4:-}
- IPFS_ADDRESSES_GATEWAY_PORT=${IPFS_ADDRESSES_GATEWAY_PORT:-}
- IPFS_API_HTTPHEADERS=${IPFS_API_HTTPHEADERS:-}
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-}
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${IPFS_API_HTTPHEADERS_ACA_HEADERS:-}
- IPFS_API_HTTPHEADERS_ACA_METHODS=${IPFS_API_HTTPHEADERS_ACA_METHODS:-}
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
- IPFS_BOOTSTRAP=${IPFS_BOOTSTRAP:-}
- IPFS_DATASTORE_GCPERIOD=${IPFS_DATASTORE_GCPERIOD:-}
- IPFS_DISK_USAGE_PERCENT=${IPFS_DISK_USAGE_PERCENT:-}
- IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT:-}
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${IPFS_EXPERIMENTAL_FILESTOREENABLED:-}
- IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${IPFS_EXPERIMENTAL_GRAPHSYNCENABLED:-}
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING:-}
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${IPFS_EXPERIMENTAL_P2PHTTPPROXY:-}
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
- IPFS_IPNS_REPUBLISHPERIOD=${IPFS_IPNS_REPUBLISHPERIOD:-}
- IPFS_IPNS_RECORDLIFETIME=${IPFS_IPNS_RECORDLIFETIME:-}
- IPFS_IPNS_USEPUBSUB=${IPFS_IPNS_USEPUBSUB:-}
- IPFS_LOGGING=${IPFS_LOGGING:-}
- IPFS_PROFILE=${IPFS_PROFILE:-}
- IPFS_PUBSUB_ENABLE=${IPFS_PUBSUB_ENABLE:-}
- IPFS_PUBSUB_ROUTER=${IPFS_PUBSUB_ROUTER:-}
- IPFS_ROUTING_TYPE=${IPFS_ROUTING_TYPE:-}
- IPFS_SWARM_CONNMGR_HIGHWATER=${IPFS_SWARM_CONNMGR_HIGHWATER:-}
- IPFS_SWARM_CONNMGR_LOWWATER=${IPFS_SWARM_CONNMGR_LOWWATER:-}
image: ${DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG}
labels:
- SERVICE_4001_CHECK_TCP=true
- SERVICE_4001_NAME=${COMPOSE_SERVICE_NAME}-ipfs:4001
- SERVICE_5001_CHECK_TCP=true
- SERVICE_5001_NAME=${COMPOSE_SERVICE_NAME}-ipfs:5001
- SERVICE_8080_CHECK_HTTP=${IPFS_SERVICE_8080_CHECK_TCP}
- SERVICE_8080_NAME=${COMPOSE_SERVICE_NAME}-ipfs:8080
@ -59,7 +58,8 @@ services:
- private
- public
ports:
- 4001
- 4001/tcp
- 4001/udp
- 5001/tcp
- 8080/tcp
restart: always

View File

@ -1,6 +1,5 @@
node ?= node/node node/portainer
ENV_VARS += DOCKER_HOST_IFACE DOCKER_HOST_INET4 DOCKER_INTERNAL_DOCKER_HOST IPFS_PROFILE
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(PROCESSOR_ARCHITECTURE)),lowpower,server)
node ?= node/node
ENV_VARS += DOCKER_HOST_IFACE DOCKER_HOST_INET4 DOCKER_INTERNAL_DOCKER_HOST
# target bootstrap-stack-node: Fire node-ssl-certs
.PHONY: bootstrap-stack-node
@ -16,8 +15,8 @@ node-%: stack-node-%;
# target node-ssl-certs: Create ${DOMAIN}.key.pem and ${DOMAIN}.crt.pem files
.PHONY: node-ssl-certs
node-ssl-certs:
docker run --rm --mount source=$(NODE_COMPOSE_PROJECT_NAME)_ssl-certs,target=/certs alpine [ -f /certs/$(DOMAIN).crt.pem -a -f /certs/$(DOMAIN).key.pem ] \
|| $(RUN) docker run --rm -e DOMAIN=$(DOMAIN) --mount source=$(NODE_COMPOSE_PROJECT_NAME)_ssl-certs,target=/certs alpine sh -c "\
docker run --rm --mount source=$(NODE_DOCKER_VOLUME),target=/certs alpine [ -f /certs/$(DOMAIN).crt.pem -a -f /certs/$(DOMAIN).key.pem ] \
|| $(RUN) docker run --rm -e DOMAIN=$(DOMAIN) --mount source=$(NODE_DOCKER_VOLUME),target=/certs alpine sh -c "\
apk --no-cache add openssl \
&& { [ -f /certs/${DOMAIN}.key.pem ] || openssl genrsa -out /certs/${DOMAIN}.key.pem 2048; } \
&& openssl req -key /certs/${DOMAIN}.key.pem -out /certs/${DOMAIN}.crt.pem \

View File

@ -2,7 +2,7 @@ version: '3.6'
services:
cadvisor-exporter:
container_name: ${NODE_COMPOSE_PROJECT_NAME}_cadvisor-exporter
container_name: ${NODE_COMPOSE_PROJECT_NAME}-cadvisor-exporter
hostname: ${HOSTNAME}
image: google/cadvisor:latest
labels:
@ -26,7 +26,7 @@ services:
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
container_name: ${NODE_COMPOSE_PROJECT_NAME}_node-exporter
container_name: ${NODE_COMPOSE_PROJECT_NAME}-node-exporter
hostname: ${HOSTNAME}
image: prom/node-exporter:latest
labels:

View File

@ -5,46 +5,46 @@ services:
build:
args:
- DOCKER_BUILD_DIR=docker/ipfs
- IPFS_VERSION=0.13.0
- IPFS_VERSION=${IPFS_VERSION}
context: ../..
dockerfile: docker/ipfs/Dockerfile
command: daemon --agent-version-suffix=${NODE_COMPOSE_PROJECT_NAME} --enable-gc --migrate
container_name: ${NODE_COMPOSE_PROJECT_NAME}_ipfs
container_name: ${NODE_COMPOSE_PROJECT_NAME}-ipfs
cpus: 0.5
environment:
- IPFS_ADDRESSES_API=${NODE_IPFS_ADDRESSES_API}
- IPFS_ADDRESSES_API_DOMAIN=${NODE_IPFS_ADDRESSES_API_DOMAIN}
- IPFS_ADDRESSES_API_INET4=${NODE_IPFS_ADDRESSES_API_INET4}
- IPFS_ADDRESSES_API_PORT=${NODE_IPFS_ADDRESSES_API_PORT}
- IPFS_ADDRESSES_GATEWAY=${NODE_IPFS_ADDRESSES_GATEWAY}
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${NODE_IPFS_ADDRESSES_GATEWAY_DOMAIN}
- IPFS_ADDRESSES_GATEWAY_INET4=${NODE_IPFS_ADDRESSES_GATEWAY_INET4}
- IPFS_ADDRESSES_GATEWAY_PORT=${NODE_IPFS_ADDRESSES_GATEWAY_PORT}
- IPFS_API_HTTPHEADERS=${NODE_IPFS_API_HTTPHEADERS}
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${NODE_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS}
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${NODE_IPFS_API_HTTPHEADERS_ACA_HEADERS}
- IPFS_API_HTTPHEADERS_ACA_METHODS=${NODE_IPFS_API_HTTPHEADERS_ACA_METHODS}
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${NODE_IPFS_API_HTTPHEADERS_ACA_ORIGIN}
- IPFS_BOOTSTRAP=${NODE_IPFS_BOOTSTRAP}
- IPFS_DATASTORE_GCPERIOD=${NODE_IPFS_DATASTORE_GCPERIOD}
- IPFS_DISK_USAGE_PERCENT=${NODE_IPFS_DISK_USAGE_PERCENT}
- IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${NODE_IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT}
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${NODE_IPFS_EXPERIMENTAL_FILESTOREENABLED}
- IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${NODE_IPFS_EXPERIMENTAL_GRAPHSYNCENABLED}
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${NODE_IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING}
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${NODE_IPFS_EXPERIMENTAL_P2PHTTPPROXY}
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${NODE_IPFS_EXPERIMENTAL_STRATEGICPROVIDING}
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${NODE_IPFS_EXPERIMENTAL_URLSTOREENABLED}
- IPFS_IPNS_REPUBLISHPERIOD=${NODE_IPFS_IPNS_REPUBLISHPERIOD}
- IPFS_IPNS_RECORDLIFETIME=${NODE_IPFS_IPNS_RECORDLIFETIME}
- IPFS_IPNS_USEPUBSUB=${NODE_IPFS_IPNS_USEPUBSUB}
- IPFS_LOGGING=${NODE_IPFS_LOGGING}
- IPFS_PROFILE=${IPFS_PROFILE}
- IPFS_PUBSUB_ENABLE=${NODE_IPFS_PUBSUB_ENABLE}
- IPFS_PUBSUB_ROUTER=${NODE_IPFS_PUBSUB_ROUTER}
- IPFS_ROUTING_TYPE=${NODE_IPFS_ROUTING_TYPE}
- IPFS_SWARM_CONNMGR_HIGHWATER=${NODE_IPFS_SWARM_CONNMGR_HIGHWATER}
- IPFS_SWARM_CONNMGR_LOWWATER=${NODE_IPFS_SWARM_CONNMGR_LOWWATER}
- IPFS_ADDRESSES_API=${NODE_IPFS_ADDRESSES_API:-}
- IPFS_ADDRESSES_API_DOMAIN=${NODE_IPFS_ADDRESSES_API_DOMAIN:-}
- IPFS_ADDRESSES_API_INET4=${NODE_IPFS_ADDRESSES_API_INET4:-}
- IPFS_ADDRESSES_API_PORT=${NODE_IPFS_ADDRESSES_API_PORT:-}
- IPFS_ADDRESSES_GATEWAY=${NODE_IPFS_ADDRESSES_GATEWAY:-}
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${NODE_IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
- IPFS_ADDRESSES_GATEWAY_INET4=${NODE_IPFS_ADDRESSES_GATEWAY_INET4:-}
- IPFS_ADDRESSES_GATEWAY_PORT=${NODE_IPFS_ADDRESSES_GATEWAY_PORT:-}
- IPFS_API_HTTPHEADERS=${NODE_IPFS_API_HTTPHEADERS:-}
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${NODE_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-}
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${NODE_IPFS_API_HTTPHEADERS_ACA_HEADERS:-}
- IPFS_API_HTTPHEADERS_ACA_METHODS=${NODE_IPFS_API_HTTPHEADERS_ACA_METHODS:-}
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${NODE_IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
- IPFS_BOOTSTRAP=${NODE_IPFS_BOOTSTRAP:-}
- IPFS_DATASTORE_GCPERIOD=${NODE_IPFS_DATASTORE_GCPERIOD:-}
- IPFS_DISK_USAGE_PERCENT=${NODE_IPFS_DISK_USAGE_PERCENT:-}
- IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${NODE_IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT:-}
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${NODE_IPFS_EXPERIMENTAL_FILESTOREENABLED:-}
- IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${NODE_IPFS_EXPERIMENTAL_GRAPHSYNCENABLED:-}
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${NODE_IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING:-}
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${NODE_IPFS_EXPERIMENTAL_P2PHTTPPROXY:-}
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${NODE_IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${NODE_IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
- IPFS_IPNS_REPUBLISHPERIOD=${NODE_IPFS_IPNS_REPUBLISHPERIOD:-}
- IPFS_IPNS_RECORDLIFETIME=${NODE_IPFS_IPNS_RECORDLIFETIME:-}
- IPFS_IPNS_USEPUBSUB=${NODE_IPFS_IPNS_USEPUBSUB:-}
- IPFS_LOGGING=${NODE_IPFS_LOGGING:-}
- IPFS_PROFILE=${IPFS_PROFILE:-}
- IPFS_PUBSUB_ENABLE=${NODE_IPFS_PUBSUB_ENABLE:-}
- IPFS_PUBSUB_ROUTER=${NODE_IPFS_PUBSUB_ROUTER:-}
- IPFS_ROUTING_TYPE=${NODE_IPFS_ROUTING_TYPE:-}
- IPFS_SWARM_CONNMGR_HIGHWATER=${NODE_IPFS_SWARM_CONNMGR_HIGHWATER:-}
- IPFS_SWARM_CONNMGR_LOWWATER=${NODE_IPFS_SWARM_CONNMGR_LOWWATER:-}
image: ${NODE_DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG}
labels:
- SERVICE_4001_CHECK_TCP=true
@ -55,12 +55,7 @@ services:
- SERVICE_8080_NAME=${NODE_COMPOSE_SERVICE_NAME}-ipfs:8080
- SERVICE_8080_TAGS=${NODE_IPFS_SERVICE_8080_TAGS}
- SERVICE_8081_IGNORE=true
networks:
- public
ports:
- 4001:4001
- 5001/tcp
- 8080/tcp
network_mode: host
restart: always
ulimits:
nofile:
@ -71,7 +66,6 @@ services:
volumes:
ipfs:
name: ${NODE_COMPOSE_PROJECT_NAME}_ipfs
networks:
public:

View File

@ -8,7 +8,7 @@ services:
- DOCKER_BUILD_DIR=docker/consul
context: ../..
dockerfile: docker/consul/Dockerfile
container_name: ${NODE_COMPOSE_PROJECT_NAME}_consul
container_name: ${NODE_COMPOSE_PROJECT_NAME}-consul
image: ${NODE_DOCKER_REPOSITORY}/consul:${DOCKER_IMAGE_TAG}
environment:
CONSUL_BIND_INTERFACE: '${DOCKER_HOST_IFACE}'
@ -40,7 +40,7 @@ services:
restart: always
volumes:
- consul:/consul/data:delegated
- ssl-certs:/certs:ro
- myos:/certs:ro
- /var/run/docker.sock:/var/run/docker.sock
fabio:
build:
@ -51,7 +51,7 @@ services:
- PROCESSOR_ARCHITECTURE=${PROCESSOR_ARCHITECTURE}
context: ../..
dockerfile: docker/fabio/Dockerfile
container_name: ${NODE_COMPOSE_PROJECT_NAME}_fabio
container_name: ${NODE_COMPOSE_PROJECT_NAME}-fabio
image: ${NODE_DOCKER_REPOSITORY}/fabio:${DOCKER_IMAGE_TAG}
command: -registry.backend "consul" -registry.consul.addr "consul:8500" -registry.consul.token "${NODE_CONSUL_HTTP_TOKEN}" -proxy.addr ":80,:443;cs=local" -proxy.cs "cs=local;type=file;cert=/certs/${DOMAIN}.crt.pem;key=/certs/${DOMAIN}.key.pem"
depends_on:
@ -76,7 +76,7 @@ services:
- public
restart: always
volumes:
- ssl-certs:/certs:ro
- myos:/certs:ro
registrator:
build:
args:
@ -85,7 +85,7 @@ services:
- GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL}
context: ../..
dockerfile: docker/registrator/Dockerfile
container_name: ${NODE_COMPOSE_PROJECT_NAME}_registrator
container_name: ${NODE_COMPOSE_PROJECT_NAME}-registrator
image: ${NODE_DOCKER_REPOSITORY}/registrator:${DOCKER_IMAGE_TAG}
command: -internal -cleanup -deregister always -resync=30 -useIpFromNetwork "${DOCKER_NETWORK_PUBLIC}" -useIpFromLabel SERVICE_ADDRESS consul://consul:8500
depends_on:
@ -102,10 +102,9 @@ services:
volumes:
consul:
name: ${NODE_COMPOSE_PROJECT_NAME}_consul
ssl-certs:
myos:
external: true
name: ${NODE_COMPOSE_PROJECT_NAME}_ssl-certs
name: ${NODE_DOCKER_VOLUME}
networks:
public:

View File

@ -8,7 +8,7 @@ services:
context: ../..
dockerfile: docker/pdns-server/Dockerfile
command: /usr/local/sbin/pdns_recursor --local-address='192.168.0.1:53' --allow-from='127.0.0.0/8, 192.168.1.0/24, 172.16.0.0/12'
container_name: ${NODE_COMPOSE_PROJECT_NAME}_pdns-recursor
container_name: ${NODE_COMPOSE_PROJECT_NAME}-pdns-recursor
hostname: ${HOSTNAME}
image: ${NODE_DOCKER_REPOSITORY}/pdns-recursor:${DOCKER_IMAGE_TAG}
network_mode: host

View File

@ -2,6 +2,7 @@ version: '3.6'
services:
portainer:
container_name: ${NODE_COMPOSE_PROJECT_NAME}-portainer
image: portainer/portainer:latest
labels:
- SERVICE_8000_IGNORE=true
@ -20,7 +21,6 @@ services:
volumes:
portainer:
name: ${NODE_COMPOSE_PROJECT_NAME}_portainer
networks:
public:

View File

@ -9,7 +9,7 @@ services:
dockerfile: docker/vsftpd-s3/Dockerfile
cap_add:
- sys_admin
container_name: ${NODE_COMPOSE_PROJECT_NAME}_vsftpd-s3
container_name: ${NODE_COMPOSE_PROJECT_NAME}-vsftpd-s3
devices:
- /dev/fuse
environment:

View File

@ -32,7 +32,7 @@ services:
restart: always
volumes:
- monorepo:/Sources:cached
- ssh-agent:/tmp/ssh-agent:ro
- myos:/tmp/ssh-agent:ro
- /var/run/docker.sock:/var/run/docker.sock
volumes:
@ -42,9 +42,10 @@ volumes:
type: none
device: ${MONOREPO_DIR}
o: bind
ssh-agent:
external:
name: ${DOCKER_VOLUME}
name: ${USER_COMPOSE_PROJECT_NAME}
myos:
external: true
name: ${USER_DOCKER_VOLUME}
networks:
private:

View File

@ -27,19 +27,19 @@ services:
- seccomp=unconfined # ecryptfs
tty: true
volumes:
- home:/home:delegated
- shared:/shared:cached
- shm:/dev/shm:delegated
- vdi-home:/home:delegated
- vdi-shared:/shared:cached
- vdi-shm:/dev/shm:delegated
volumes:
home:
shared:
vdi-home:
vdi-shared:
driver: local
driver_opts:
type: none
device: /mnt/shared
o: bind
shm:
vdi-shm:
driver: local
driver_opts:
type: tmpfs

View File

@ -8,7 +8,7 @@ services:
- GID=${GID}
- GIT_AUTHOR_NAME=${GIT_AUTHOR_NAME}
- GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL}
- IPFS_VERSION=0.13.0
- IPFS_VERSION=${IPFS_VERSION}
- UID=${UID}
- USER=${USER}
context: ../..
@ -27,18 +27,17 @@ services:
volumes:
- astroport:${HOME}/astroport:cached
- ipfs:${HOME}/.ipfs:cached,ro
- myos:/tmp/ssh-agent:ro
- zen:${HOME}/.zen:delegated
- ssh-agent:/tmp/ssh-agent:ro
working_dir: ${HOME}/.zen
volumes:
astroport:
ipfs:
external: true
name: ${COMPOSE_PROJECT_NAME}_ipfs
ssh-agent:
myos:
external: true
name: ${DOCKER_VOLUME}
name: ${USER_DOCKER_VOLUME}
zen:
driver: local
driver_opts: