Spaces:
Build error
Build error
| # Filename: Dockerfile | |
| # Version: $(date +%s) | |
| FROM alpine:latest | |
| # Instalar dependencias necesarias | |
| RUN apk add --no-cache \ | |
| docker \ | |
| docker-cli \ | |
| shadow \ | |
| sudo \ | |
| curl \ | |
| iptables \ | |
| nginx \ | |
| fuse-overlayfs \ | |
| shadow-uidmap | |
| # Crear un usuario no root | |
| RUN adduser -D -g '' dockeruser && echo "dockeruser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
| # Cambiar al usuario no root | |
| USER dockeruser | |
| # Configurar Docker rootless manualmente | |
| RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-rootless-extras-20.10.7.tgz | tar -xz -C ~/ | |
| RUN ~/docker-rootless-extras/install | |
| RUN echo 'export PATH=$HOME/bin:$PATH' >> /home/dockeruser/.profile | |
| RUN echo 'export DOCKER_HOST=unix:///run/user/1000/docker.sock' >> /home/dockeruser/.profile | |
| # Crear el archivo de servicio para Docker rootless | |
| RUN mkdir -p /home/dockeruser/.config/systemd/user/ && \ | |
| echo '[Unit]\n\ | |
| Description=Docker Application Container Engine (Rootless)\n\ | |
| Documentation=https://docs.docker.com/go/rootless/\n\ | |
| Wants=network-online.target\n\ | |
| After=network-online.target firewalld.service containerd.service\n\ | |
| StartLimitIntervalSec=0\n\ | |
| \n\ | |
| [Service]\n\ | |
| Environment="PATH=/usr/bin:/usr/sbin"\n\ | |
| ExecStart=/home/dockeruser/bin/dockerd-rootless.sh --experimental --host=tcp://0.0.0.0:7680\n\ | |
| Restart=always\n\ | |
| User=dockeruser\n\ | |
| LimitNOFILE=infinity\n\ | |
| LimitNPROC=infinity\n\ | |
| LimitCORE=infinity\n\ | |
| Delegate=yes\n\ | |
| KillMode=process\n\ | |
| \n\ | |
| [Install]\n\ | |
| WantedBy=default.target' > /home/dockeruser/.config/systemd/user/docker.service | |
| # Cambiar al usuario root para configurar Nginx | |
| USER root | |
| # Configurar Nginx | |
| RUN echo 'server {\n\ | |
| listen 80;\n\ | |
| location /docker {\n\ | |
| proxy_pass http://localhost:7680;\n\ | |
| proxy_set_header Host $host;\n\ | |
| proxy_set_header X-Real-IP $remote_addr;\n\ | |
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\ | |
| proxy_set_header X-Forwarded-Proto $scheme;\n\ | |
| }\n\ | |
| location / {\n\ | |
| return 200 "Hello World";\n\ | |
| add_header Content-Type text/plain;\n\ | |
| }\n\ | |
| }' > /etc/nginx/conf.d/default.conf | |
| # Exponer el puerto para la API de Docker y Nginx | |
| EXPOSE 80 | |
| EXPOSE 7680 | |
| # Configurar el comando de inicio | |
| CMD ["sh", "-c", "~/.docker-rootless-extras/docker-rootless.sh --experimental --host=tcp://0.0.0.0:7680 & nginx -g 'daemon off;'"] |