the universal sandbox runtime for agents and humans.
pocketenv.io
sandbox
openclaw
agent
claude-code
vercel-sandbox
deno-sandbox
cloudflare-sandbox
atproto
sprites
daytona
1FROM daytonaio/sandbox:0.6.0
2
3SHELL ["/bin/bash", "-c"]
4
5ARG TARGETARCH
6
7ENV LC_ALL=en_US.UTF-8
8ENV LANG=en_US.UTF-8
9ENV LANGUAGE=en_US.UTF-8
10
11USER root
12
13RUN apt-get update && apt-get install -y build-essential \
14 tmux \
15 gawk \
16 sed \
17 procps \
18 wget \
19 locales-all
20
21RUN ARCH=$(uname -m) && \
22 if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \
23 if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
24 VERSION=v1.2.1 && \
25 curl -L "https://github.com/tigrisdata/tigrisfs/releases/download/${VERSION}/tigrisfs_${VERSION#v}_linux_${ARCH}.tar.gz" -o /tmp/tigrisfs.tar.gz && \
26 tar -xzf /tmp/tigrisfs.tar.gz -C /usr/local/bin/ && \
27 rm /tmp/tigrisfs.tar.gz && \
28 chmod +x /usr/local/bin/tigrisfs
29USER daytona
30
31RUN sudo apt-get update && sudo apt-get install -y wget
32
33RUN curl -fsSL https://tailscale.com/install.sh | sh
34
35ENV OPENCRUST_VERSION=v0.1.21
36
37RUN case "${TARGETARCH}" in \
38 amd64) OPENCRUST_ARCH="x86_64" ;; \
39 arm64) OPENCRUST_ARCH="aarch64" ;; \
40 *) echo "Unsupported arch: ${TARGETARCH}" && exit 1 ;; \
41 esac && \
42 sudo wget -qO opencrust "https://github.com/opencrust-org/opencrust/releases/download/${OPENCRUST_VERSION}/opencrust-linux-${OPENCRUST_ARCH}" && \
43 sudo mkdir -p /home/daytona/.local/bin && \
44 sudo mv opencrust /home/daytona/.local/bin && \
45 sudo chmod +x /home/daytona/.local/bin/opencrust
46
47ENV PATH="/home/daytona/.local/bin:/home/daytona/.npm-global/bin:${PATH}"
48
49RUN npm install -g pm2
50
51USER root
52RUN mkdir -p /home/daytona/.local/share/fonts && chown -R daytona:daytona /home/daytona/.local && \
53 usermod -s /bin/bash daytona
54USER daytona
55
56RUN echo '[[ -f ~/.bashrc ]] && source ~/.bashrc' >> ~/.bash_profile
57
58WORKDIR /home/daytona
59
60RUN curl -fsSL https://code-server.dev/install.sh | sh && \
61 code-server --install-extension bastndev.lynx-theme --force && \
62 curl -fsSL https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/CascadiaMono.zip -o /tmp/CascadiaMono.zip && \
63 unzip -o /tmp/CascadiaMono.zip -d /home/daytona/.local/share/fonts/CascadiaMono && \
64 fc-cache -fv && \
65 touch /home/daytona/.vscode-setup-done
66
67RUN curl -fsSL https://github.com/ajeetdsouza/zoxide/releases/download/v0.9.9/zoxide-0.9.9-x86_64-unknown-linux-musl.tar.gz -o /tmp/zoxide.tar.gz && \
68 mkdir -p ~/.local/bin && \
69 tar -xzf /tmp/zoxide.tar.gz -C ~/.local/bin zoxide && \
70 chmod +x ~/.local/bin/zoxide && \
71 rm /tmp/zoxide.tar.gz && \
72 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && \
73 echo 'eval "$(zoxide init bash)"' >> ~/.bashrc && \
74 echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
75
76RUN curl -fsSL https://zerobrew.rs/install | bash
77
78RUN curl -s https://ohmyposh.dev/install.sh | bash -s && \
79 curl -s https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/refs/heads/main/themes/tokyonight_storm.omp.json | tee ~/.tokyonight_storm.omp.json >/dev/null && \
80 echo 'eval "$(oh-my-posh init bash --config ~/.tokyonight_storm.omp.json)"' >> ~/.bashrc && \
81 echo 'eval "$(oh-my-posh init zsh --config ~/.tokyonight_storm.omp.json)"' >> ~/.zshrc
82
83RUN git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git && \
84 mkdir -p ~/.local && \
85 make -C ble.sh install PREFIX=$HOME/.local && \
86 rm -rf ble.sh && \
87 echo 'export LANG=en_US.UTF-8' >> ~/.bashrc && \
88 echo 'source -- ~/.local/share/blesh/ble.sh' >> ~/.bashrc
89
90RUN curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh && \
91 echo 'export PATH=$PATH:$HOME/.atuin/bin' >> ~/.bashrc && \
92 echo 'eval "$(atuin init bash)"' >> ~/.bashrc && \
93 echo 'eval "$(atuin init zsh)"' >> ~/.zshrc
94
95RUN case "${TARGETARCH}" in \
96 amd64) EZA_ARCH="x86_64-unknown-linux-musl" ;; \
97 arm64) EZA_ARCH="aarch64-unknown-linux-musl" ;; \
98 *) echo "Unsupported arch: ${TARGETARCH}" && exit 1 ;; \
99 esac && \
100 wget -qO /tmp/eza.tar.gz "https://github.com/eza-community/eza/releases/latest/download/eza_${EZA_ARCH}.tar.gz" && \
101 tar -xzf /tmp/eza.tar.gz -C ~/.local/bin && \
102 chmod +x ~/.local/bin/eza && \
103 rm /tmp/eza.tar.gz && \
104 echo 'alias ls="eza -l"' >> ~/.bashrc && \
105 echo 'alias ls="eza -l"' >> ~/.zshrc
106
107RUN mkdir -p ~/.zsh && git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions \
108 && echo "source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc