diff --git a/runtimes/operating-systems/debian/12.6/Dockerfile b/runtimes/operating-systems/debian/12.6/Dockerfile index 7433e582..bc93b98a 100644 --- a/runtimes/operating-systems/debian/12.6/Dockerfile +++ b/runtimes/operating-systems/debian/12.6/Dockerfile @@ -1,8 +1,10 @@ FROM debian:12.6-slim COPY startup.sh /usr/start/startup.sh +COPY setup.sh /usr/start/setup.sh +COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf -RUN chmod +x /usr/start/startup.sh && \ +RUN chmod +x /usr/start/startup.sh /usr/start/setup.sh && \ apt-get update && \ apt-get install -y \ dumb-init \ @@ -17,11 +19,12 @@ RUN chmod +x /usr/start/startup.sh && \ openssl \ make \ git \ + supervisor \ openssh-client \ openssh-server && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ - mkdir -p /run/sshd && \ + mkdir -p /run/sshd /var/log/supervisor && \ chmod 755 /run/sshd && \ echo 'AllowTcpForwarding yes' >> /etc/ssh/sshd_config && \ echo 'GatewayPorts yes' >> /etc/ssh/sshd_config && \ @@ -45,8 +48,10 @@ COPY project /home/devbox/project RUN sudo chown -R devbox:devbox /home/devbox/project && \ sudo chmod -R 777 /home/devbox/project +USER root + ENTRYPOINT ["/usr/bin/dumb-init", "--"] -CMD ["sudo", "-E", "/usr/start/startup.sh"] +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] WORKDIR /home/devbox/project EXPOSE 22 diff --git a/runtimes/operating-systems/debian/12.6/setup.sh b/runtimes/operating-systems/debian/12.6/setup.sh new file mode 100644 index 00000000..9f798029 --- /dev/null +++ b/runtimes/operating-systems/debian/12.6/setup.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Setup script that runs once at container startup +if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then + echo "${SEALOS_DEVBOX_NAME}">/etc/hostname +fi + +echo "${SEALOS_DEVBOX_POD_UID}">/usr/start/pod_id diff --git a/runtimes/operating-systems/debian/12.6/supervisord.conf b/runtimes/operating-systems/debian/12.6/supervisord.conf new file mode 100644 index 00000000..d7401332 --- /dev/null +++ b/runtimes/operating-systems/debian/12.6/supervisord.conf @@ -0,0 +1,33 @@ +[unix_http_server] +file=/var/run/supervisor.sock +chmod=0700 + +[supervisorctl] +serverurl=unix:///var/run/supervisor.sock + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisord] +nodaemon=true +logfile=/var/log/supervisor/supervisord.log +pidfile=/var/run/supervisord.pid +childlogdir=/var/log/supervisor +user=root + +[program:sshd] +command=/usr/sbin/sshd -D +autostart=true +autorestart=true +stdout_logfile=/var/log/supervisor/sshd.log +stderr_logfile=/var/log/supervisor/sshd.err +priority=1 + +[program:setup] +command=/usr/start/setup.sh +autostart=true +autorestart=false +startsecs=0 +stdout_logfile=/var/log/supervisor/setup.log +stderr_logfile=/var/log/supervisor/setup.err +priority=0 diff --git a/runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile b/runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile index f17c2e0b..1dc38413 100644 --- a/runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile +++ b/runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile @@ -1,6 +1,8 @@ FROM nvidia/cuda:12.4.1-devel-ubuntu22.04 COPY startup.sh /usr/start/startup.sh +COPY setup.sh /usr/start/setup.sh +COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf RUN apt update && \ apt install -y \ @@ -14,11 +16,12 @@ RUN apt update && \ vim \ openssl \ make \ - git && \ - mkdir -p /usr/start && \ + git \ + supervisor && \ + mkdir -p /usr/start /var/log/supervisor && \ apt clean -RUN chmod +x /usr/start/startup.sh && \ +RUN chmod +x /usr/start/startup.sh /usr/start/setup.sh && \ apt-get update && \ apt-get install -y \ dumb-init \ @@ -56,7 +59,7 @@ RUN sudo chown -R devbox:devbox /home/devbox/project && \ USER root ENTRYPOINT ["/usr/bin/dumb-init", "--"] -CMD ["sudo", "-E", "/usr/start/startup.sh"] +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] WORKDIR /home/devbox/project EXPOSE 22 diff --git a/runtimes/operating-systems/ubuntu-cuda/24.04/setup.sh b/runtimes/operating-systems/ubuntu-cuda/24.04/setup.sh new file mode 100644 index 00000000..9f798029 --- /dev/null +++ b/runtimes/operating-systems/ubuntu-cuda/24.04/setup.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Setup script that runs once at container startup +if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then + echo "${SEALOS_DEVBOX_NAME}">/etc/hostname +fi + +echo "${SEALOS_DEVBOX_POD_UID}">/usr/start/pod_id diff --git a/runtimes/operating-systems/ubuntu-cuda/24.04/supervisord.conf b/runtimes/operating-systems/ubuntu-cuda/24.04/supervisord.conf new file mode 100644 index 00000000..d7401332 --- /dev/null +++ b/runtimes/operating-systems/ubuntu-cuda/24.04/supervisord.conf @@ -0,0 +1,33 @@ +[unix_http_server] +file=/var/run/supervisor.sock +chmod=0700 + +[supervisorctl] +serverurl=unix:///var/run/supervisor.sock + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisord] +nodaemon=true +logfile=/var/log/supervisor/supervisord.log +pidfile=/var/run/supervisord.pid +childlogdir=/var/log/supervisor +user=root + +[program:sshd] +command=/usr/sbin/sshd -D +autostart=true +autorestart=true +stdout_logfile=/var/log/supervisor/sshd.log +stderr_logfile=/var/log/supervisor/sshd.err +priority=1 + +[program:setup] +command=/usr/start/setup.sh +autostart=true +autorestart=false +startsecs=0 +stdout_logfile=/var/log/supervisor/setup.log +stderr_logfile=/var/log/supervisor/setup.err +priority=0 diff --git a/runtimes/operating-systems/ubuntu/24.04/Dockerfile b/runtimes/operating-systems/ubuntu/24.04/Dockerfile index ac1e5b8d..698dc686 100644 --- a/runtimes/operating-systems/ubuntu/24.04/Dockerfile +++ b/runtimes/operating-systems/ubuntu/24.04/Dockerfile @@ -1,6 +1,8 @@ FROM ubuntu:24.04 COPY startup.sh /usr/start/startup.sh +COPY setup.sh /usr/start/setup.sh +COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf RUN apt update && \ apt install -y \ @@ -14,11 +16,12 @@ RUN apt update && \ vim \ openssl \ make \ - git && \ - mkdir -p /usr/start && \ + git \ + supervisor && \ + mkdir -p /usr/start /var/log/supervisor && \ apt clean -RUN chmod +x /usr/start/startup.sh && \ +RUN chmod +x /usr/start/startup.sh /usr/start/setup.sh && \ apt-get update && \ apt-get install -y \ dumb-init \ @@ -55,7 +58,7 @@ RUN sudo chown -R devbox:devbox /home/devbox/project && \ USER root ENTRYPOINT ["/usr/bin/dumb-init", "--"] -CMD ["sudo", "-E", "/usr/start/startup.sh"] +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] WORKDIR /home/devbox/project diff --git a/runtimes/operating-systems/ubuntu/24.04/setup.sh b/runtimes/operating-systems/ubuntu/24.04/setup.sh new file mode 100644 index 00000000..9f798029 --- /dev/null +++ b/runtimes/operating-systems/ubuntu/24.04/setup.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Setup script that runs once at container startup +if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then + echo "${SEALOS_DEVBOX_NAME}">/etc/hostname +fi + +echo "${SEALOS_DEVBOX_POD_UID}">/usr/start/pod_id diff --git a/runtimes/operating-systems/ubuntu/24.04/supervisord.conf b/runtimes/operating-systems/ubuntu/24.04/supervisord.conf new file mode 100644 index 00000000..d7401332 --- /dev/null +++ b/runtimes/operating-systems/ubuntu/24.04/supervisord.conf @@ -0,0 +1,33 @@ +[unix_http_server] +file=/var/run/supervisor.sock +chmod=0700 + +[supervisorctl] +serverurl=unix:///var/run/supervisor.sock + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisord] +nodaemon=true +logfile=/var/log/supervisor/supervisord.log +pidfile=/var/run/supervisord.pid +childlogdir=/var/log/supervisor +user=root + +[program:sshd] +command=/usr/sbin/sshd -D +autostart=true +autorestart=true +stdout_logfile=/var/log/supervisor/sshd.log +stderr_logfile=/var/log/supervisor/sshd.err +priority=1 + +[program:setup] +command=/usr/start/setup.sh +autostart=true +autorestart=false +startsecs=0 +stdout_logfile=/var/log/supervisor/setup.log +stderr_logfile=/var/log/supervisor/setup.err +priority=0