95 lines
2.2 KiB
Docker
95 lines
2.2 KiB
Docker
# 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"]
|
|
|
|
|