# Usa Debian como base FROM debian:bookworm-slim # Definir el directorio de trabajo WORKDIR /app # Instalar dependencias necesarias RUN apt-get update && \ apt-get install -y --no-install-recommends \ bash \ curl \ gnupg \ apt-transport-https \ wget \ build-essential \ libncursesw5-dev \ libssl-dev \ libsqlite3-dev \ tk-dev \ libgdbm-dev \ libc6-dev \ libbz2-dev \ libffi-dev \ zlib1g-dev \ git \ ca-certificates && \ rm -rf /var/lib/apt/lists/* # Descargar e instalar Python 3.10 RUN wget https://www.python.org/ftp/python/3.10.16/Python-3.10.16.tgz --no-check-certificate && \ tar xzf Python-3.10.16.tgz && \ cd Python-3.10.16 && \ ./configure --enable-optimizations && \ make altinstall && \ ln -s /usr/local/bin/python3.10 /usr/bin/python && \ cd .. && \ rm -rf Python-3.10.16* # Verificar la instalación de Python y pip RUN python --version && pip3.10 --version # Descargar e instalar code-server de manera explícita RUN curl -fsSL https://code-server.dev/install.sh | sh && \ if [ ! -f /usr/bin/code-server ]; then ln -s $(which code-server) /usr/bin/code-server; fi && \ which code-server && \ code-server --version # Instalar Node.js 22 RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \ apt-get install -y nodejs && \ node -v && npm -v # Habilitar el uso de corepack RUN corepack enable # Definir el directorio de trabajo WORKDIR /app/frontend # Copiar archivos desde la carpeta local COPY vite-template/ . # Instalar dependencias para evitar `npm install` en cada arranque RUN npm install # Crear la estructura de carpetas y asegurar permisos RUN mkdir -p /app/backend /app/host_transfer && \ chmod -R 777 /app/backend /app/host_transfer # Crear la carpeta en la raíz del contenedor RUN mkdir -p /app/share && chmod 777 /app/share # Copiar el script de inicio COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh # Exponer el puerto por defecto de code-server EXPOSE 8080 5173 # Definir el usuario y grupo de trabajo USER root # Comando para iniciar code-server y react como root ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]