Merge branch 'main' of http://thinkcentre.local:3000/ChK/appRobotVideo
This commit is contained in:
25
install_inside_docker.sh
Normal file
25
install_inside_docker.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Update und installiere Build-Tools (wie im Dockerfile)
|
||||
apt-get update && apt-get install -y \
|
||||
build-essential cmake git pkg-config \
|
||||
libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev \
|
||||
libtbb-dev libjpeg-dev libpng-dev libtiff-dev \
|
||||
ffmpeg ca-certificates \
|
||||
python3 python3-dev python3-numpy \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Klone und baue OpenCV (wie im Dockerfile)
|
||||
git clone --branch 4.12.0 https://github.com/opencv/opencv.git /opencv
|
||||
git clone --branch 4.12.0 https://github.com/opencv/opencv_contrib.git /opencv_contrib
|
||||
mkdir /opencv/build && cd /opencv/build
|
||||
cmake -D CMAKE_BUILD_TYPE=Release \
|
||||
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
||||
-D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
|
||||
-D BUILD_opencv_python3=ON \
|
||||
-D BUILD_EXAMPLES=OFF ..
|
||||
make -j$(nproc) && make install && ldconfig
|
||||
|
||||
# Cleanup (optional, um Space zu sparen)
|
||||
rm -rf /opencv /opencv_contrib
|
||||
54
install_inside_docker.yaml
Normal file
54
install_inside_docker.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
version: "3.3"
|
||||
services:
|
||||
appvideoserver:
|
||||
image: node:lts-bookworm-slim # Standard-Image, kein Build nötig
|
||||
container_name: AppRobotVideo
|
||||
working_dir: /usr/src/app
|
||||
volumes:
|
||||
- .:/usr/src/app # Mountet dein Workspace (inkl. install_inside_docker.sh und .installed)
|
||||
ports:
|
||||
- "8448:8443"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
init: true
|
||||
command: >
|
||||
sh -c "
|
||||
# Einmalige Installation: Checke Flag-File (.installed im gemounteten Volume)
|
||||
if [ ! -f .installed ]; then
|
||||
echo 'Running first-time installation...'
|
||||
./install_inside_docker.sh && touch .installed
|
||||
else
|
||||
echo 'Installation already done, skipping...'
|
||||
fi &&
|
||||
# NPM-Installation (einmalig machen, wenn gewünscht – hier immer, aber du kannst es anpassen)
|
||||
if [ -f package-lock.json ] || [ -f npm-shrinkwrap.json ]; then
|
||||
npm ci || npm install
|
||||
else
|
||||
npm install
|
||||
fi &&
|
||||
# Starte die App
|
||||
npm start"
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- HOST_UID=${UID-1000}
|
||||
- HOST_GID=${GID-1000}
|
||||
- DEV0=/dev/video0
|
||||
- DEV1=/dev/video2
|
||||
- TARGET_SERVER=wss://host.docker.internal:2096
|
||||
# Optional: Env-Var für dein Script (z.B. um es zu überspringen)
|
||||
- SKIP_INSTALL=false # Kannst du setzen, um manuell zu überspringen
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- appRobotNet
|
||||
- default
|
||||
privileged: true
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
|
||||
networks:
|
||||
default:
|
||||
driver: bridge
|
||||
appRobotNet:
|
||||
external: true
|
||||
Reference in New Issue
Block a user