mirror of
https://github.com/immich-app/immich.git
synced 2025-07-31 15:08:44 -04:00
feat: relocate scripts, PATH update (#20002)
Relocate scripts, and PATH updates
This commit is contained in:
parent
576f681b5c
commit
f33e1ad94c
@ -16,7 +16,7 @@ name: immich-dev
|
|||||||
services:
|
services:
|
||||||
immich-server:
|
immich-server:
|
||||||
container_name: immich_server
|
container_name: immich_server
|
||||||
command: ['/usr/src/app/bin/immich-dev']
|
command: ['immich-dev']
|
||||||
image: immich-server-dev:latest
|
image: immich-server-dev:latest
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.transcoding.yml
|
# file: hwaccel.transcoding.yml
|
||||||
@ -70,7 +70,7 @@ services:
|
|||||||
# user: 0:0
|
# user: 0:0
|
||||||
build:
|
build:
|
||||||
context: ../web
|
context: ../web
|
||||||
command: ['/usr/src/app/bin/immich-web']
|
command: ['immich-web']
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
ports:
|
ports:
|
||||||
|
@ -3,7 +3,6 @@ name: immich-e2e
|
|||||||
services:
|
services:
|
||||||
immich-server:
|
immich-server:
|
||||||
container_name: immich-e2e-server
|
container_name: immich-e2e-server
|
||||||
command: ['./start.sh']
|
|
||||||
image: immich-server:latest
|
image: immich-server:latest
|
||||||
build:
|
build:
|
||||||
context: ../
|
context: ../
|
||||||
|
@ -12,7 +12,7 @@ ENV PATH="${PATH}:/usr/src/app/bin" \
|
|||||||
IMMICH_ENV=development \
|
IMMICH_ENV=development \
|
||||||
NVIDIA_DRIVER_CAPABILITIES=all \
|
NVIDIA_DRIVER_CAPABILITIES=all \
|
||||||
NVIDIA_VISIBLE_DEVICES=all
|
NVIDIA_VISIBLE_DEVICES=all
|
||||||
ENTRYPOINT ["tini", "--", "/bin/sh"]
|
ENTRYPOINT ["tini", "--", "/bin/sh", "-c"]
|
||||||
|
|
||||||
FROM dev AS dev-container-server
|
FROM dev AS dev-container-server
|
||||||
|
|
||||||
@ -110,8 +110,6 @@ COPY --from=prod /usr/src/app/bin ./bin
|
|||||||
COPY --from=web /usr/src/app/build /build/www
|
COPY --from=web /usr/src/app/build /build/www
|
||||||
COPY server/resources resources
|
COPY server/resources resources
|
||||||
COPY server/package.json server/package-lock.json ./
|
COPY server/package.json server/package-lock.json ./
|
||||||
COPY server/start*.sh ./
|
|
||||||
COPY "docker/scripts/get-cpus.sh" ./
|
|
||||||
RUN npm install -g @immich/cli && npm cache clean --force
|
RUN npm install -g @immich/cli && npm cache clean --force
|
||||||
COPY LICENSE /licenses/LICENSE.txt
|
COPY LICENSE /licenses/LICENSE.txt
|
||||||
COPY LICENSE /LICENSE
|
COPY LICENSE /LICENSE
|
||||||
@ -134,7 +132,7 @@ ENV IMMICH_SOURCE_URL=https://github.com/immich-app/immich/commit/${BUILD_SOURCE
|
|||||||
|
|
||||||
VOLUME /usr/src/app/upload
|
VOLUME /usr/src/app/upload
|
||||||
EXPOSE 2283
|
EXPOSE 2283
|
||||||
ENTRYPOINT ["tini", "--", "/bin/bash"]
|
ENTRYPOINT ["tini", "--", "/bin/bash", "-c"]
|
||||||
CMD ["start.sh"]
|
CMD ["start.sh"]
|
||||||
|
|
||||||
HEALTHCHECK CMD immich-healthcheck
|
HEALTHCHECK CMD immich-healthcheck
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
/usr/src/app/start.sh immich-admin "$@"
|
start.sh immich-admin "$@"
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
node /usr/src/app/node_modules/.bin/nest start --debug "0.0.0.0:9230" --watch -- "$@"
|
if [ "$IMMICH_ENV" != "development" ]; then
|
||||||
|
echo "This command can only be run in development environments"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /usr/src/app || exit 1
|
||||||
|
node ./node_modules/.bin/nest start --debug "0.0.0.0:9230" --watch -- "$@"
|
||||||
|
44
server/bin/start.sh
Executable file
44
server/bin/start.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
echo "Initializing Immich $IMMICH_SOURCE_REF"
|
||||||
|
|
||||||
|
lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.2"
|
||||||
|
if [ -f "$lib_path" ]; then
|
||||||
|
export LD_PRELOAD="$lib_path"
|
||||||
|
else
|
||||||
|
echo "skipping libmimalloc - path not found $lib_path"
|
||||||
|
fi
|
||||||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/jellyfin-ffmpeg/lib"
|
||||||
|
SERVER_HOME=/usr/src/app
|
||||||
|
|
||||||
|
read_file_and_export() {
|
||||||
|
if [ -n "${!1}" ]; then
|
||||||
|
content="$(cat "${!1}")"
|
||||||
|
export "$2"="${content}"
|
||||||
|
unset "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
read_file_and_export "DB_URL_FILE" "DB_URL"
|
||||||
|
read_file_and_export "DB_HOSTNAME_FILE" "DB_HOSTNAME"
|
||||||
|
read_file_and_export "DB_DATABASE_NAME_FILE" "DB_DATABASE_NAME"
|
||||||
|
read_file_and_export "DB_USERNAME_FILE" "DB_USERNAME"
|
||||||
|
read_file_and_export "DB_PASSWORD_FILE" "DB_PASSWORD"
|
||||||
|
read_file_and_export "REDIS_PASSWORD_FILE" "REDIS_PASSWORD"
|
||||||
|
|
||||||
|
if CPU_CORES="${CPU_CORES:=$(get-cpus.sh 2>/dev/null)}"; then
|
||||||
|
echo "Detected CPU Cores: $CPU_CORES"
|
||||||
|
if [ "$CPU_CORES" -gt 4 ]; then
|
||||||
|
export UV_THREADPOOL_SIZE=$CPU_CORES
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "skipping get-cpus.sh - not found in PATH or failed: using default UV_THREADPOOL_SIZE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "${SERVER_HOME}/dist/main.js" ]; then
|
||||||
|
exec node "${SERVER_HOME}/dist/main.js" "$@"
|
||||||
|
else
|
||||||
|
echo "Error: ${SERVER_HOME}/dist/main.js not found"
|
||||||
|
if [ "$IMMICH_ENV" = "development" ]; then
|
||||||
|
echo "You may need to build the server first."
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
fi
|
@ -1,29 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo "Initializing Immich $IMMICH_SOURCE_REF"
|
|
||||||
|
|
||||||
lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.2"
|
|
||||||
export LD_PRELOAD="$lib_path"
|
|
||||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/jellyfin-ffmpeg/lib"
|
|
||||||
|
|
||||||
read_file_and_export() {
|
|
||||||
if [ -n "${!1}" ]; then
|
|
||||||
content="$(cat "${!1}")"
|
|
||||||
export "$2"="${content}"
|
|
||||||
unset "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
read_file_and_export "DB_URL_FILE" "DB_URL"
|
|
||||||
read_file_and_export "DB_HOSTNAME_FILE" "DB_HOSTNAME"
|
|
||||||
read_file_and_export "DB_DATABASE_NAME_FILE" "DB_DATABASE_NAME"
|
|
||||||
read_file_and_export "DB_USERNAME_FILE" "DB_USERNAME"
|
|
||||||
read_file_and_export "DB_PASSWORD_FILE" "DB_PASSWORD"
|
|
||||||
read_file_and_export "REDIS_PASSWORD_FILE" "REDIS_PASSWORD"
|
|
||||||
|
|
||||||
export CPU_CORES="${CPU_CORES:=$(./get-cpus.sh)}"
|
|
||||||
echo "Detected CPU Cores: $CPU_CORES"
|
|
||||||
if [ "$CPU_CORES" -gt 4 ]; then
|
|
||||||
export UV_THREADPOOL_SIZE=$CPU_CORES
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec node /usr/src/app/dist/main "$@"
|
|
@ -5,7 +5,8 @@ USER node
|
|||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY --chown=node:node package*.json ./
|
COPY --chown=node:node package*.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
ENV CHOKIDAR_USEPOLLING=true
|
ENV CHOKIDAR_USEPOLLING=true \
|
||||||
|
PATH="${PATH}:/usr/src/app/bin"
|
||||||
EXPOSE 24678
|
EXPOSE 24678
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
ENTRYPOINT ["/sbin/tini", "--", "/bin/sh"]
|
ENTRYPOINT ["/sbin/tini", "--", "/bin/sh", "-c"]
|
||||||
|
@ -5,6 +5,7 @@ TYPESCRIPT_SDK=/usr/src/open-api/typescript-sdk
|
|||||||
npm --prefix "$TYPESCRIPT_SDK" install
|
npm --prefix "$TYPESCRIPT_SDK" install
|
||||||
npm --prefix "$TYPESCRIPT_SDK" run build
|
npm --prefix "$TYPESCRIPT_SDK" run build
|
||||||
|
|
||||||
|
cd /usr/src/app || exit 1
|
||||||
|
|
||||||
COUNT=0
|
COUNT=0
|
||||||
UPSTREAM="${IMMICH_SERVER_URL:-http://immich-server:2283/}"
|
UPSTREAM="${IMMICH_SERVER_URL:-http://immich-server:2283/}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user