diff --git a/Makefile b/Makefile index 402b1801..ddcbd388 100644 --- a/Makefile +++ b/Makefile @@ -1,40 +1,52 @@ -MYOS ?= ../myos -MYOS_REPOSITORY ?= https://github.com/aynicos/myos +MYOS ?= ../myos +MYOS_REPOSITORY ?= $(patsubst %/$(APP),%/myos,$(APP_REPOSITORY)) +APP ?= $(lastword $(subst /, ,$(APP_REPOSITORY))) +APP_REPOSITORY ?= $(shell git config --get remote.origin.url 2>/dev/null) -include $(MYOS)/make/include.mk $(MYOS): -@git clone $(MYOS_REPOSITORY) $(MYOS) -.PHONY: all install shellcheck shellcheck-% tests SHELL_FILES ?= $(wildcard .*/*.sh */*.sh */*/*.sh) +.PHONY: all all: install tests -install: upgrade build myos-host up player - -upgrade: migrate-ipfs migrate-zen +.PHONY: install +install: myos build up player echo "Welcome to myos docker land - make a user - make a player -" +.PHONY: migrate +migrate-%: home := ~/.zen/game/players migrate-%: - [ ! -f /var/lib/docker/volumes/$(HOSTNAME)_$*/_data ] \ - && $(RUN) $(SUDO) mkdir -p /var/lib/docker/volumes/$(HOSTNAME)_$*/_data \ - && $(RUN) $(SUDO) cp -a ~/.$* /var/lib/docker/volumes/$(HOSTNAME)_$*/_data \ - && $(RUN) $(SUDO) chown -R $(USER) /var/lib/docker/volumes/$(HOSTNAME)_$* \ - || : + if $(SUDO) test ! -d /var/lib/docker/volumes/$(HOSTNAME)_$*; then \ + $(RUN) $(SUDO) mkdir -p /var/lib/docker/volumes/$(HOSTNAME)_$* \ + && $(RUN) $(SUDO) cp -a $(if $($*),$($*)/,~/.$*/) /var/lib/docker/volumes/$(HOSTNAME)_$*/_data \ + && $(RUN) $(SUDO) chown -R $(HOST_UID):$(HOST_GID) /var/lib/docker/volumes/$(HOSTNAME)_$*/_data \ + ; \ + fi +.PHONY: player player: STACK := User player: docker-network-create-$(USER) $(call make,stack-User-$(if $(DELETE),down,up),$(MYOS),COMPOSE_PROJECT_NAME MAIL) +.PHONY: player-% player-%: STACK := User player-%: $(if $(filter $*,$(filter-out %-%,$(patsubst docker-compose-%,%,$(filter docker-compose-%,$(MAKE_TARGETS))))), \ $(call make,stack-User-$*,$(MYOS),COMPOSE_PROJECT_NAME MAIL) \ ) -tests: shellcheck - +.PHONY: shellcheck shellcheck: shellcheck $(SHELL_FILES) ||: +.PHONY: shellcheck-% shellcheck-%: shellcheck $*/*.sh + +.PHONY: tests +tests: shellcheck + +.PHONY: upgrade +upgrade: migrate-home migrate-ipfs install diff --git a/docker/stack.mk b/docker/astroport.mk similarity index 68% rename from docker/stack.mk rename to docker/astroport.mk index 8e8efa88..2ff187da 100644 --- a/docker/stack.mk +++ b/docker/astroport.mk @@ -1,7 +1,10 @@ COMPOSE_FILE_VDI := true +COMPOSE_IGNORE_ORPHANS := true DOCKER_IMAGES_MYOS := x2go:xfce-debian ENV_VARS += HOST_ASTROPORT_SERVICE_1234_TAGS -HOST_ASTROPORT_SERVICE_1234_TAGS ?= urlprefix-astroport.$(DOMAIN)/ +HOST_ASTROPORT_SERVICE_URIS ?= $(patsubst %,astroport.%,$(APP_URIS)) +HOST_ASTROPORT_SERVICE_1234_TAGS ?= $(call urlprefix,,$(HOST_ASTROPORT_SERVICE_1234_URIS)) +HOST_ASTROPORT_SERVICE_1234_URIS ?= $(HOST_ASTROPORT_SERVICE_URIS) HOST_ASTROPORT_UFW_UPDATE := 1234/tcp 12245:12445/tcp 45720/tcp MAKE_VARS += SSH_PORT User host SERVICE := astroport diff --git a/docker/astroport/Dockerfile b/docker/astroport/Dockerfile index b9e901ea..ef0f8817 100644 --- a/docker/astroport/Dockerfile +++ b/docker/astroport/Dockerfile @@ -191,7 +191,7 @@ VOLUME "/home/$USER/Astroport" # homedir RUN mkdir -p "/home/$USER/.ipfs" "/home/$USER/.zen/game/players" "/home/$USER/Astroport" \ - && chown "$USER" "/home/$USER/.ipfs" "/home/$USER/.zen/game/players" "/home/$USER/Astroport" + && chown -R "$USER" "/home/$USER" HEALTHCHECK CMD [ $(ps aux |grep 'nc -l -p' |wc -l) -lt 199 ] && echo -n OK diff --git a/docker/astroport/astroport.sh b/docker/astroport/astroport.sh index cfefb863..ab055ba9 100755 --- a/docker/astroport/astroport.sh +++ b/docker/astroport/astroport.sh @@ -14,8 +14,9 @@ log() { } zen() { + mkdir -p /home/zen/Astroport + sudo chown zen:users /home/zen /home/zen/.zen /home/zen/.zen/game /home/zen/.zen/game/players [ -d "$ASTROPORT_DIR" ] && cd "$ASTROPORT_DIR" && git pull -q || git clone -q "$ASTROPORT_REPO" "$ASTROPORT_DIR" - sudo chown zen /home/zen/.zen/game/players } case "${1:-${cmd:-start}}" in diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index fba3bd77..88f8643b 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -12,12 +12,10 @@ services: restart: unless-stopped tty: true volumes: - - data:/home/zen/Astroport:cached - home:/home/zen/.zen/game/players:delegated - ipfs:/home/zen/.ipfs:cached,ro working_dir: /home/zen volumes: - data: home: ipfs: