mirror of
https://github.com/kasmtech/workspaces-core-images.git
synced 2025-06-26 06:51:45 +02:00
Merge branch 'feature/KASM-4083_webcam_streaming' into 'develop'
Resolve KASM-4083 "Feature/ webcam streaming" Closes KASM-4083 See merge request kasm-technologies/internal/workspaces-core-images!115
This commit is contained in:
commit
e8d03efdfa
@ -76,6 +76,10 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
||||||
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
||||||
|
|
||||||
|
### Install Webcam Service
|
||||||
|
COPY ./src/ubuntu/install/webcam $INST_SCRIPTS/webcam/
|
||||||
|
RUN bash $INST_SCRIPTS/webcam/install_webcam.sh && rm -rf $INST_SCRIPTS/webcam/
|
||||||
|
|
||||||
### Install custom cursors
|
### Install custom cursors
|
||||||
COPY ./src/ubuntu/install/cursors $INST_SCRIPTS/cursors/
|
COPY ./src/ubuntu/install/cursors $INST_SCRIPTS/cursors/
|
||||||
RUN bash $INST_SCRIPTS/cursors/install_cursors.sh && rm -rf $INST_SCRIPTS/cursors/
|
RUN bash $INST_SCRIPTS/cursors/install_cursors.sh && rm -rf $INST_SCRIPTS/cursors/
|
||||||
@ -136,6 +140,7 @@ RUN touch $STARTUPDIR/wm.log \
|
|||||||
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
||||||
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
||||||
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
||||||
|
&& chmod 755 $STARTUPDIR/webcam/kasm_webcam_server \
|
||||||
&& chmod 755 $STARTUPDIR/generate_container_user \
|
&& chmod 755 $STARTUPDIR/generate_container_user \
|
||||||
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
||||||
&& rm -rf $STARTUPDIR/install \
|
&& rm -rf $STARTUPDIR/install \
|
||||||
|
@ -74,6 +74,10 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
||||||
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
||||||
|
|
||||||
|
### Install Webcam Service
|
||||||
|
COPY ./src/ubuntu/install/webcam $INST_SCRIPTS/webcam/
|
||||||
|
RUN bash $INST_SCRIPTS/webcam/install_webcam.sh && rm -rf $INST_SCRIPTS/webcam/
|
||||||
|
|
||||||
### Copy built Squid
|
### Copy built Squid
|
||||||
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
||||||
|
|
||||||
@ -126,6 +130,7 @@ RUN touch $STARTUPDIR/wm.log \
|
|||||||
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
||||||
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
||||||
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
||||||
|
&& chmod 755 $STARTUPDIR/webcam/kasm_webcam_server \
|
||||||
&& chmod 755 $STARTUPDIR/generate_container_user \
|
&& chmod 755 $STARTUPDIR/generate_container_user \
|
||||||
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
||||||
&& rm -rf $STARTUPDIR/install \
|
&& rm -rf $STARTUPDIR/install \
|
||||||
|
@ -85,6 +85,10 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
||||||
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
||||||
|
|
||||||
|
### Install Webcam Service
|
||||||
|
COPY ./src/ubuntu/install/webcam $INST_SCRIPTS/webcam/
|
||||||
|
RUN bash $INST_SCRIPTS/webcam/install_webcam.sh && rm -rf $INST_SCRIPTS/webcam/
|
||||||
|
|
||||||
### Copy built Squid
|
### Copy built Squid
|
||||||
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
||||||
|
|
||||||
@ -137,6 +141,7 @@ RUN touch $STARTUPDIR/wm.log \
|
|||||||
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
||||||
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
||||||
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
||||||
|
&& chmod 755 $STARTUPDIR/webcam/kasm_webcam_server \
|
||||||
&& chmod 755 $STARTUPDIR/generate_container_user \
|
&& chmod 755 $STARTUPDIR/generate_container_user \
|
||||||
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
||||||
&& rm -rf $STARTUPDIR/install \
|
&& rm -rf $STARTUPDIR/install \
|
||||||
|
@ -89,6 +89,10 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
||||||
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
||||||
|
|
||||||
|
### Install Webcam Service
|
||||||
|
COPY ./src/ubuntu/install/webcam $INST_SCRIPTS/webcam/
|
||||||
|
RUN bash $INST_SCRIPTS/webcam/install_webcam.sh && rm -rf $INST_SCRIPTS/webcam/
|
||||||
|
|
||||||
### Copy built Squid
|
### Copy built Squid
|
||||||
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
||||||
|
|
||||||
@ -141,6 +145,7 @@ RUN touch $STARTUPDIR/wm.log \
|
|||||||
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
||||||
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
||||||
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
||||||
|
&& chmod 755 $STARTUPDIR/webcam/kasm_webcam_server \
|
||||||
&& chmod 755 $STARTUPDIR/generate_container_user \
|
&& chmod 755 $STARTUPDIR/generate_container_user \
|
||||||
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
||||||
&& rm -rf $STARTUPDIR/install \
|
&& rm -rf $STARTUPDIR/install \
|
||||||
|
@ -104,6 +104,10 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
||||||
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
||||||
|
|
||||||
|
### Install Webcam Service
|
||||||
|
COPY ./src/ubuntu/install/webcam $INST_SCRIPTS/webcam/
|
||||||
|
RUN bash $INST_SCRIPTS/webcam/install_webcam.sh && rm -rf $INST_SCRIPTS/webcam/
|
||||||
|
|
||||||
### Copy built Squid
|
### Copy built Squid
|
||||||
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
||||||
|
|
||||||
@ -160,6 +164,7 @@ RUN touch $STARTUPDIR/wm.log \
|
|||||||
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
||||||
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
||||||
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
||||||
|
&& chmod 755 $STARTUPDIR/webcam/kasm_webcam_server \
|
||||||
&& chmod 755 $STARTUPDIR/generate_container_user \
|
&& chmod 755 $STARTUPDIR/generate_container_user \
|
||||||
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
||||||
&& rm -rf $STARTUPDIR/install \
|
&& rm -rf $STARTUPDIR/install \
|
||||||
|
@ -79,6 +79,10 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
COPY ./src/ubuntu/install/gamepad $INST_SCRIPTS/gamepad/
|
||||||
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
RUN bash $INST_SCRIPTS/gamepad/install_gamepad.sh && rm -rf $INST_SCRIPTS/gamepad/
|
||||||
|
|
||||||
|
### Install Webcam Service
|
||||||
|
COPY ./src/ubuntu/install/webcam $INST_SCRIPTS/webcam/
|
||||||
|
RUN bash $INST_SCRIPTS/webcam/install_webcam.sh && rm -rf $INST_SCRIPTS/webcam/
|
||||||
|
|
||||||
### Copy built Squid
|
### Copy built Squid
|
||||||
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
||||||
|
|
||||||
@ -135,6 +139,7 @@ RUN touch $STARTUPDIR/wm.log \
|
|||||||
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
&& chmod 755 $STARTUPDIR/upload_server/kasm_upload_server \
|
||||||
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
&& chmod 755 $STARTUPDIR/audio_input/kasm_audio_input_server \
|
||||||
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
&& chmod 755 $STARTUPDIR/gamepad/kasm_gamepad_server \
|
||||||
|
&& chmod 755 $STARTUPDIR/webcam/kasm_webcam_server \
|
||||||
&& chmod 755 $STARTUPDIR/generate_container_user \
|
&& chmod 755 $STARTUPDIR/generate_container_user \
|
||||||
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
&& chmod +x $STARTUPDIR/jsmpeg/kasm_audio_out-linux \
|
||||||
&& rm -rf $STARTUPDIR/install \
|
&& rm -rf $STARTUPDIR/install \
|
||||||
|
@ -198,6 +198,24 @@ function start_gamepad (){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function start_webcam (){
|
||||||
|
if [[ ${KASM_SVC_WEBCAM:-1} == 1 ]] && [[ -e /dev/video0 ]]; then
|
||||||
|
echo 'Starting webcam server'
|
||||||
|
if [[ $DEBUG == true ]]; then
|
||||||
|
$STARTUPDIR/webcam/kasm_webcam_server --debug --port 4905 --ssl --cert ${HOME}/.vnc/self.pem --certkey ${HOME}/.vnc/self.pem &
|
||||||
|
else
|
||||||
|
$STARTUPDIR/webcam/kasm_webcam_server --port 4905 --ssl --cert ${HOME}/.vnc/self.pem --certkey ${HOME}/.vnc/self.pem &
|
||||||
|
fi
|
||||||
|
|
||||||
|
KASM_PROCS['kasm_webcam']=$!
|
||||||
|
|
||||||
|
if [[ $DEBUG == true ]]; then
|
||||||
|
echo -e "\n------------------ Started Webcam Websocket ----------------------------"
|
||||||
|
echo "Kasm Webcam PID: ${KASM_PROCS['kasm_webcam']}";
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function custom_startup (){
|
function custom_startup (){
|
||||||
custom_startup_script=/dockerstartup/custom_startup.sh
|
custom_startup_script=/dockerstartup/custom_startup.sh
|
||||||
if [ -f "$custom_startup_script" ]; then
|
if [ -f "$custom_startup_script" ]; then
|
||||||
@ -263,6 +281,7 @@ start_audio_out
|
|||||||
start_audio_in
|
start_audio_in
|
||||||
start_upload
|
start_upload
|
||||||
start_gamepad
|
start_gamepad
|
||||||
|
start_webcam
|
||||||
|
|
||||||
STARTUP_COMPLETE=1
|
STARTUP_COMPLETE=1
|
||||||
|
|
||||||
@ -323,11 +342,16 @@ do
|
|||||||
# TODO: This will only work if both processes are killed, requires more work
|
# TODO: This will only work if both processes are killed, requires more work
|
||||||
start_upload
|
start_upload
|
||||||
;;
|
;;
|
||||||
kasm_gamepad)
|
kasm_gamepad)
|
||||||
echo "Gamepad Service Failed"
|
echo "Gamepad Service Failed"
|
||||||
# TODO: Needs work in python project to support auto restart
|
# TODO: Needs work in python project to support auto restart
|
||||||
# start_gamepad
|
# start_gamepad
|
||||||
;;
|
;;
|
||||||
|
kasm_webcam)
|
||||||
|
echo "Webcam Service Failed"
|
||||||
|
# TODO: Needs work in python project to support auto restart
|
||||||
|
start_webcam
|
||||||
|
;;
|
||||||
custom_script)
|
custom_script)
|
||||||
echo "The custom startup script exited."
|
echo "The custom startup script exited."
|
||||||
# custom startup scripts track the target process on their own, they should not exit
|
# custom startup scripts track the target process on their own, they should not exit
|
||||||
|
20
src/ubuntu/install/webcam/install_webcam.sh
Normal file
20
src/ubuntu/install/webcam/install_webcam.sh
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
### every exit != 0 fails the script
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "${DISTRO}" == "oracle7" ]; then
|
||||||
|
DISTRO=centos
|
||||||
|
elif [ "${DISTRO}" == "oracle8" ]; then
|
||||||
|
DISTRO=oracle
|
||||||
|
fi
|
||||||
|
|
||||||
|
COMMIT_ID="1631ff2c5f79ff6892c1d357343c47cb6f7c7a29"
|
||||||
|
BRANCH="develop"
|
||||||
|
COMMIT_ID_SHORT=$(echo "${COMMIT_ID}" | cut -c1-6)
|
||||||
|
|
||||||
|
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||||
|
|
||||||
|
mkdir -p $STARTUPDIR/webcam
|
||||||
|
wget -qO- https://kasmweb-build-artifacts.s3.amazonaws.com/kasm_webcam_server/${COMMIT_ID}/kasm_webcam_server_${ARCH}_${BRANCH}.${COMMIT_ID_SHORT}.tar.gz | tar -xvz -C $STARTUPDIR/webcam/
|
||||||
|
|
||||||
|
echo "${BRANCH}:${COMMIT_ID}" > $STARTUPDIR/webcam/kasm_webcam_server.version
|
Loading…
x
Reference in New Issue
Block a user