mfoud444 commited on
Commit
759db60
·
verified ·
1 Parent(s): fadc9d7

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -24
Dockerfile CHANGED
@@ -2,48 +2,42 @@ FROM ubuntu:22.04
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # 1. Install prerequisites and Docker
6
  RUN apt-get update && apt-get install -y \
7
  curl \
8
- iproute2 \
9
- ca-certificates \
10
- gnupg \
11
- lsb-release \
12
- && mkdir -p /etc/apt/keyrings \
13
- && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
14
- && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list \
15
- && apt-get update \
16
- && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
17
 
18
- # 2. Configure Docker to run as root
19
- RUN groupadd docker \
20
- && usermod -aG docker root \
21
- && newgrp docker
22
 
23
  # 3. Download Dokploy installer
24
  RUN curl -sSL https://dokploy.com/install.sh -o /install-dokploy.sh \
25
  && chmod +x /install-dokploy.sh
26
 
27
- # 4. Create entrypoint script
28
  RUN echo '#!/bin/bash\n\
29
  set -e\n\
30
  \n\
31
- # Start Docker daemon with root permissions\n\
32
- dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 &\n\
 
 
 
 
33
  \n\
34
- # Wait for Docker to be ready\n\
35
  while ! docker info >/dev/null 2>&1; do\n\
36
- echo "Waiting for Docker to start..."\n\
37
  sleep 1\n\
38
  done\n\
39
  \n\
40
- # Run Dokploy installation as root\n\
41
  /install-dokploy.sh\n\
42
  \n\
43
  # Keep container running\n\
44
- tail -f /dev/null' > /entrypoint.sh \
45
- && chmod +x /entrypoint.sh
46
 
47
- EXPOSE 3000 2375
48
 
49
- ENTRYPOINT ["/entrypoint.sh"]
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # 1. Install only necessary components (no full Docker install)
6
  RUN apt-get update && apt-get install -y \
7
  curl \
8
+ docker.io \ # Lightweight Docker package
9
+ && rm -rf /var/lib/apt/lists/*
 
 
 
 
 
 
 
10
 
11
+ # 2. Configure Docker alternatives
12
+ RUN ln -s /usr/bin/docker.io /usr/local/bin/docker
 
 
13
 
14
  # 3. Download Dokploy installer
15
  RUN curl -sSL https://dokploy.com/install.sh -o /install-dokploy.sh \
16
  && chmod +x /install-dokploy.sh
17
 
18
+ # 4. Create startup script
19
  RUN echo '#!/bin/bash\n\
20
  set -e\n\
21
  \n\
22
+ # Use rootless Docker if possible\n\
23
+ if [ -x "$(command -v dockerd-rootless.sh)" ]; then\n\
24
+ dockerd-rootless.sh &\n\
25
+ else\n\
26
+ dockerd &\n\
27
+ fi\n\
28
  \n\
29
+ # Wait for Docker\n\
30
  while ! docker info >/dev/null 2>&1; do\n\
 
31
  sleep 1\n\
32
  done\n\
33
  \n\
34
+ # Run Dokploy\n\
35
  /install-dokploy.sh\n\
36
  \n\
37
  # Keep container running\n\
38
+ tail -f /dev/null' > /start.sh \
39
+ && chmod +x /start.sh
40
 
41
+ EXPOSE 3000
42
 
43
+ CMD ["/start.sh"]