From 6228c9ec089a8844eaa071fb139ae0bf7ab95c49 Mon Sep 17 00:00:00 2001 From: Aetherinox Date: Sun, 23 Feb 2025 06:03:13 -0700 Subject: [PATCH] feat: add bindable working dir `/usr/bin/app` working directory can now be bound to user host machine --- Dockerfile | 9 +++++---- Dockerfile.aarch64 | 5 +++-- docker-compose.yml | 4 ++-- root/etc/s6-overlay/s6-rc.d/init-adduser/run | 1 + root/etc/services.d/tvapp2/run | 9 ++++++++- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1667709a..51781564 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,6 @@ # arm64 docker buildx build --no-cache --pull --build-arg VERSION=1.0.0 --build-arg BUILDDATE=20250218 -t tvapp2:latest -t tvapp2:1.0.0 --platform=linux/arm64 --output type=docker --output type=docker . # # - FROM ghcr.io/aetherinox/alpine-base:3.20-amd64 # # @@ -57,6 +56,8 @@ ENV WEB_IP="0.0.0.0" ENV WEB_PORT=4124 ENV NODE_VERSION=18.20.5 ENV YARN_VERSION=1.22.22 +ENV INSTALL_DIR=/usr/src/app +ENV WORKING_DIR=/usr/bin/app # # # Install @@ -86,7 +87,7 @@ COPY root/ / # set work directory # # -WORKDIR /usr/src/app +WORKDIR ${INSTALL_DIR} # # # copy tvapp2 project to workdir @@ -95,10 +96,10 @@ WORKDIR /usr/src/app COPY tvapp2/ ./ # # -# install node (production) +# set work dir to built app # # -RUN npm install --only=production +WORKDIR ${WORKING_DIR} # # # Ports and volumes diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f0deac7e..f9f6f713 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -56,6 +56,7 @@ ENV WEB_IP="0.0.0.0" ENV WEB_PORT=4124 ENV NODE_VERSION=18.20.5 ENV YARN_VERSION=1.22.22 +ENV WORKING_DIR=/usr/bin/app # # # Install @@ -94,10 +95,10 @@ WORKDIR /usr/src/app COPY tvapp2/ ./ # # -# install node (production) +# set work dir to built app # # -RUN npm install --only=production +WORKDIR ${WORKING_DIR} # # # Ports and volumes diff --git a/docker-compose.yml b/docker-compose.yml index 087a6c89..c716426a 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,7 @@ services: tvapp2: - container_name: ${TVAPP2CONTAINER_NAME:-tvapp2} -# image: ghcr.io/aetherinox/tvapp2:latest + container_name: tvapp2 image: tvapp2:latest hostname: tvapp2 environment: @@ -12,6 +11,7 @@ services: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock - ./config:/config + - ./data:/usr/bin/app ulimits: memlock: soft: -1 diff --git a/root/etc/s6-overlay/s6-rc.d/init-adduser/run b/root/etc/s6-overlay/s6-rc.d/init-adduser/run index f93641ba..a026d272 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-adduser/run +++ b/root/etc/s6-overlay/s6-rc.d/init-adduser/run @@ -27,6 +27,7 @@ fi echo " Port(s) $(echo $WEB_PORT)" echo " Gateway $(echo $IP_GATEWAY)" echo " Web Server $(echo $IP_CONTAINER:$WEB_PORT)" +echo " App Folder $(echo $WORKING_DIR)" echo "" echo '──────────────────────────────────────────────────────────────────────────────────────────' diff --git a/root/etc/services.d/tvapp2/run b/root/etc/services.d/tvapp2/run index 4aff3c67..baf4b1c0 100755 --- a/root/etc/services.d/tvapp2/run +++ b/root/etc/services.d/tvapp2/run @@ -1,3 +1,10 @@ #!/usr/bin/with-contenv sh -cd "/usr/src/app" + +# # +# install and startup for tvapp2 +# # + +cp -r ${INSTALL_DIR} ${WORKING_DIR} +rm -rf ${INSTALL_DIR}/* +cd ${WORKING_DIR} npm start