mirror of
https://github.com/immich-app/immich
synced 2025-10-17 18:19:27 +00:00
fix: fix docker perms for dev (#21359)
This commit is contained in:
parent
9487241481
commit
147accd957
5 changed files with 33 additions and 14 deletions
|
|
@ -26,7 +26,7 @@ services:
|
||||||
env_file: !reset []
|
env_file: !reset []
|
||||||
init:
|
init:
|
||||||
env_file: !reset []
|
env_file: !reset []
|
||||||
command: sh -c 'for path in /data /data/upload /usr/src/app/.pnpm-store /usr/src/app/server/node_modules /usr/src/app/server/dist /usr/src/app/.github/node_modules /usr/src/app/cli/node_modules /usr/src/app/docs/node_modules /usr/src/app/e2e/node_modules /usr/src/app/open-api/typescript-sdk/node_modules /usr/src/app/web/.svelte-kit /usr/src/app/web/coverage /usr/src/app/node_modules /usr/src/app/web/node_modules; do [ -e "$$path" ] && chown -R ${UID:-1000}:${GID:-1000} "$$path" || true; done'
|
command: sh -c 'find /data -maxdepth 1 ! -path "/data/postgres" -type d -exec chown ${UID:-1000}:${GID:-1000} {} + 2>/dev/null || true; for path in /usr/src/app/.pnpm-store /usr/src/app/server/node_modules /usr/src/app/server/dist /usr/src/app/.github/node_modules /usr/src/app/cli/node_modules /usr/src/app/docs/node_modules /usr/src/app/e2e/node_modules /usr/src/app/open-api/typescript-sdk/node_modules /usr/src/app/web/.svelte-kit /usr/src/app/web/coverage /usr/src/app/node_modules /usr/src/app/web/node_modules; do [ -e "$$path" ] && chown -R ${UID:-1000}:${GID:-1000} "$$path" || true; done'
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
env_file: !reset []
|
env_file: !reset []
|
||||||
database:
|
database:
|
||||||
|
|
|
||||||
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
|
|
@ -569,7 +569,8 @@ jobs:
|
||||||
- name: Build the app
|
- name: Build the app
|
||||||
run: pnpm --filter immich build
|
run: pnpm --filter immich build
|
||||||
- name: Run API generation
|
- name: Run API generation
|
||||||
run: make open-api
|
run: ./bin/generate-open-api.sh
|
||||||
|
working-directory: open-api
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
|
|
|
||||||
38
Makefile
38
Makefile
|
|
@ -60,20 +60,37 @@ VOLUME_DIRS = \
|
||||||
./e2e/node_modules \
|
./e2e/node_modules \
|
||||||
./docs/node_modules \
|
./docs/node_modules \
|
||||||
./server/node_modules \
|
./server/node_modules \
|
||||||
./server/dist \
|
|
||||||
./open-api/typescript-sdk/node_modules \
|
./open-api/typescript-sdk/node_modules \
|
||||||
./.github/node_modules \
|
./.github/node_modules \
|
||||||
./node_modules \
|
./node_modules \
|
||||||
./cli/node_modules
|
./cli/node_modules
|
||||||
|
|
||||||
# create empty directories and chown to current user
|
# Include .env file if it exists
|
||||||
|
-include docker/.env
|
||||||
|
|
||||||
|
# Helper function to chown, on error suggest remediation and exit
|
||||||
|
define safe_chown
|
||||||
|
if chown $(2) $(or $(UID),1000):$(or $(GID),1000) "$(1)" 2>/dev/null; then \
|
||||||
|
true; \
|
||||||
|
else \
|
||||||
|
echo "Permission denied when changing owner of volumes and upload location. Try running 'sudo make prepare-volumes' first."; \
|
||||||
|
exit 1; \
|
||||||
|
fi;
|
||||||
|
endef
|
||||||
|
# create empty directories and chown
|
||||||
prepare-volumes:
|
prepare-volumes:
|
||||||
@for dir in $(VOLUME_DIRS); do \
|
@$(foreach dir,$(VOLUME_DIRS),mkdir -p $(dir);)
|
||||||
mkdir -p $$dir; \
|
@$(foreach dir,$(VOLUME_DIRS),$(call safe_chown,$(dir),-R))
|
||||||
done
|
ifneq ($(UPLOAD_LOCATION),)
|
||||||
@if [ -n "$(VOLUME_DIRS)" ]; then \
|
ifeq ($(filter /%,$(UPLOAD_LOCATION)),)
|
||||||
chown -R $$(id -u):$$(id -g) $(VOLUME_DIRS); \
|
@mkdir -p "docker/$(UPLOAD_LOCATION)"
|
||||||
fi
|
@$(call safe_chown,docker/$(UPLOAD_LOCATION),)
|
||||||
|
else
|
||||||
|
@mkdir -p "$(UPLOAD_LOCATION)"
|
||||||
|
@$(call safe_chown,$(UPLOAD_LOCATION),)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
MODULES = e2e server web cli sdk docs .github
|
MODULES = e2e server web cli sdk docs .github
|
||||||
|
|
||||||
|
|
@ -150,8 +167,9 @@ clean:
|
||||||
find . -name ".svelte-kit" -type d -prune -exec rm -rf '{}' +
|
find . -name ".svelte-kit" -type d -prune -exec rm -rf '{}' +
|
||||||
find . -name "coverage" -type d -prune -exec rm -rf '{}' +
|
find . -name "coverage" -type d -prune -exec rm -rf '{}' +
|
||||||
find . -name ".pnpm-store" -type d -prune -exec rm -rf '{}' +
|
find . -name ".pnpm-store" -type d -prune -exec rm -rf '{}' +
|
||||||
command -v docker >/dev/null 2>&1 && docker compose -f ./docker/docker-compose.dev.yml rm -v -f || true
|
command -v docker >/dev/null 2>&1 && docker compose -f ./docker/docker-compose.dev.yml down -v --remove-orphans || true
|
||||||
command -v docker >/dev/null 2>&1 && docker compose -f ./e2e/docker-compose.yml rm -v -f || true
|
command -v docker >/dev/null 2>&1 && docker compose -f ./e2e/docker-compose.yml down -v --remove-orphans || true
|
||||||
|
|
||||||
|
|
||||||
setup-server-dev: install-server
|
setup-server-dev: install-server
|
||||||
setup-web-dev: install-sdk build-sdk install-web
|
setup-web-dev: install-sdk build-sdk install-web
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,7 @@ services:
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
user: 0:0
|
user: 0:0
|
||||||
command: sh -c 'for path in /usr/src/app/.pnpm-store /usr/src/app/server/node_modules /usr/src/app/server/dist /usr/src/app/.github/node_modules /usr/src/app/cli/node_modules /usr/src/app/docs/node_modules /usr/src/app/e2e/node_modules /usr/src/app/open-api/typescript-sdk/node_modules /usr/src/app/web/.svelte-kit /usr/src/app/web/coverage /usr/src/app/node_modules /usr/src/app/web/node_modules; do [ -e "$$path" ] && chown -R ${UID:-1000}:${GID:-1000} "$$path" || true; done'
|
command: sh -c 'find /data -maxdepth 1 -type d -exec chown ${UID:-1000}:${GID:-1000} {} + 2>/dev/null || true; for path in /usr/src/app/.pnpm-store /usr/src/app/server/node_modules /usr/src/app/server/dist /usr/src/app/.github/node_modules /usr/src/app/cli/node_modules /usr/src/app/docs/node_modules /usr/src/app/e2e/node_modules /usr/src/app/open-api/typescript-sdk/node_modules /usr/src/app/web/.svelte-kit /usr/src/app/web/coverage /usr/src/app/node_modules /usr/src/app/web/node_modules; do [ -e "$$path" ] && chown -R ${UID:-1000}:${GID:-1000} "$$path" || true; done'
|
||||||
volumes:
|
volumes:
|
||||||
- pnpm-store:/usr/src/app/.pnpm-store
|
- pnpm-store:/usr/src/app/.pnpm-store
|
||||||
- server-node_modules:/usr/src/app/server/node_modules
|
- server-node_modules:/usr/src/app/server/node_modules
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ if [ "$CURRENT_SERVER" != "$NEXT_SERVER" ]; then
|
||||||
pnpm install --frozen-lockfile --prefix server
|
pnpm install --frozen-lockfile --prefix server
|
||||||
pnpm --prefix server run build
|
pnpm --prefix server run build
|
||||||
|
|
||||||
make open-api
|
( cd ./open-api && bash ./bin/generate-open-api.sh )
|
||||||
|
|
||||||
jq --arg version "$NEXT_SERVER" '.version = $version' open-api/typescript-sdk/package.json > open-api/typescript-sdk/package.json.tmp && mv open-api/typescript-sdk/package.json.tmp open-api/typescript-sdk/package.json
|
jq --arg version "$NEXT_SERVER" '.version = $version' open-api/typescript-sdk/package.json > open-api/typescript-sdk/package.json.tmp && mv open-api/typescript-sdk/package.json.tmp open-api/typescript-sdk/package.json
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue