@@ -156,9 +156,6 @@ generate_ssh_keys() {
156156 cp " openssh-server/ssh-keys/openssh_server_key.pub" " openssh-server/config/authorized_keys"
157157 chmod 644 " openssh-server/config/authorized_keys"
158158
159- # Setup package installation script
160- setup_package_install_script
161-
162159 # Set SSH key path in environment
163160 SSH_PRIVATE_KEY_PATH=" $( pwd) /openssh-server/ssh-keys/openssh_server_key"
164161 export SSH_PRIVATE_KEY_PATH
@@ -185,7 +182,7 @@ generate_ssh_keys() {
185182 TEMP_OUTPUT=" /tmp/ssh_keygen_output_$$ .txt"
186183
187184 # Generate ed25519 key pair using the openssh-server container
188- if docker run --rm -i --entrypoint //keygen.sh " $OPENSSH_SERVER_IMAGE " <<< " 1 " > " $TEMP_OUTPUT " 2>&1 ; then
185+ if docker run --rm -i " $OPENSSH_SERVER_IMAGE " bash -c " ssh-keygen -t ed25519 -f /tmp/id_ed25519 -N '' && cat /tmp/id_ed25519 && echo '---' && cat /tmp/id_ed25519.pub " > " $TEMP_OUTPUT " 2>&1 ; then
189186 echo " 🔍 SSH key generation completed, extracting keys..."
190187
191188 # Extract private key (everything between -----BEGIN and -----END)
@@ -226,9 +223,6 @@ generate_ssh_keys() {
226223 cp " openssh-server/ssh-keys/openssh_server_key.pub" " openssh-server/config/authorized_keys"
227224 chmod 644 " openssh-server/config/authorized_keys"
228225
229- # Setup package installation script
230- setup_package_install_script
231-
232226 # Set SSH key path in environment
233227 SSH_PRIVATE_KEY_PATH=" $( pwd) /openssh-server/ssh-keys/openssh_server_key"
234228 export SSH_PRIVATE_KEY_PATH
@@ -643,16 +637,16 @@ select_deployment_version() {
643637 echo " "
644638}
645639
646- pull_openssh_images () {
647- # Function to pull openssh images
640+ build_ubuntu_terminal_image () {
641+ # Function to build openssh-server image
648642
649- echo " 🐳 Pulling openssh-server image for Terminal tool..."
650- if ! docker pull " $OPENSSH_SERVER_IMAGE " ; then
651- echo " ❌ ERROR Failed to pull openssh-server image: $OPENSSH_SERVER_IMAGE "
643+ echo " 🐳 Building openssh-server image for Terminal tool..."
644+ if ! docker build -t " $OPENSSH_SERVER_IMAGE " -f ../make/terminal/Dockerfile .. ; then
645+ echo " ❌ ERROR Failed to build openssh-server image"
652646 ERROR_OCCURRED=1
653647 return 1
654648 fi
655- echo " ✅ Successfully pulled openssh-server image"
649+ echo " ✅ Successfully built openssh-server image"
656650 echo " "
657651 echo " --------------------------------"
658652 echo " "
@@ -714,6 +708,31 @@ select_terminal_tool() {
714708 export COMPOSE_PROFILES=" ${COMPOSE_PROFILES: +$COMPOSE_PROFILES ,} terminal"
715709 echo " ✅ Terminal tool enabled 🔧"
716710 echo " 🔧 Deploying an openssh-server container for secure command execution"
711+
712+ # Ask user to specify directory mapping
713+ default_terminal_dir=" /opt/terminal"
714+ echo " 📁 Terminal directory configuration:"
715+ echo " • Container path: /opt/terminal (fixed)"
716+ echo " • Host path: You can specify any directory on your host machine"
717+ echo " • Default host path: /opt/terminal (recommended)"
718+ echo " "
719+ read -p " 📁 Enter host directory to mount (default: /opt/terminal): " terminal_mount_dir
720+ terminal_mount_dir=$( sanitize_input " $terminal_mount_dir " )
721+ TERMINAL_MOUNT_DIR=" ${terminal_mount_dir:- $default_terminal_dir } "
722+
723+ # Save to environment variables
724+ export TERMINAL_MOUNT_DIR
725+
726+ # Add to .env file
727+ if grep -q " ^TERMINAL_MOUNT_DIR=" .env; then
728+ sed -i.bak " s~^TERMINAL_MOUNT_DIR=.*~TERMINAL_MOUNT_DIR=$TERMINAL_MOUNT_DIR ~" .env
729+ else
730+ echo " TERMINAL_MOUNT_DIR=$TERMINAL_MOUNT_DIR " >> .env
731+ fi
732+
733+ echo " 📁 Terminal mount configuration:"
734+ echo " • Host: $TERMINAL_MOUNT_DIR "
735+ echo " • Container: /opt/terminal"
717736 else
718737 export ENABLE_TERMINAL_TOOL=" false"
719738 echo " 🚫 Terminal tool disabled"
@@ -797,7 +816,7 @@ main_deploy() {
797816 generate_minio_ak_sk || { echo " ❌ MinIO key generation failed" ; exit 1; }
798817
799818 if [ " $ENABLE_TERMINAL_TOOL " = " true" ]; then
800- pull_openssh_images || { echo " ❌ Openssh image pull failed" ; exit 1; }
819+ build_ubuntu_terminal_image || { echo " ❌ Ubuntu terminal image build failed" ; exit 1; }
801820 generate_ssh_keys || { echo " ❌ SSH key generation failed" ; exit 1; }
802821 fi
803822
0 commit comments