Skip to content

Commit 344ba4c

Browse files
standardize to 24.04 and use user instead of root
1 parent 01a943f commit 344ba4c

1 file changed

Lines changed: 48 additions & 51 deletions

File tree

docs/template/examples/docker.mdx

Lines changed: 48 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,23 @@ Use the official installation script from [get.docker.com](https://get.docker.co
1414
// template.ts
1515
import { Template } from 'e2b'
1616

17-
export const template = Template()
18-
.fromUbuntuImage('25.04')
19-
.runCmd('curl -fsSL https://get.docker.com | sudo sh')
20-
.runCmd('sudo docker run --rm hello-world')
21-
```
17+
export const template = Template()
18+
.fromUbuntuImage('24.04')
19+
.runCmd('curl -fsSL https://get.docker.com | sudo sh')
20+
.runCmd('sudo docker run --rm hello-world')
21+
```
2222

2323
```python Python
2424
# template.py
2525
from e2b import Template
2626

27-
template = (
28-
Template()
29-
.from_ubuntu_image("25.04")
30-
.run_cmd("curl -fsSL https://get.docker.com | sudo sh")
31-
.run_cmd("sudo docker run --rm hello-world")
32-
)
33-
```
27+
template = (
28+
Template()
29+
.from_ubuntu_image("24.04")
30+
.run_cmd("curl -fsSL https://get.docker.com | sudo sh")
31+
.run_cmd("sudo docker run --rm hello-world")
32+
)
33+
```
3434
</CodeGroup>
3535

3636
### Build
@@ -97,11 +97,7 @@ sbx.kill()
9797

9898
This example installs Docker and Docker Compose, then validates the setup with a Compose version check and a sample Compose run.
9999

100-
<Note>
101-
Run Docker and Docker Compose commands as `root` in this setup. The Docker daemon socket is not accessible to the default `user` account.
102-
</Note>
103-
104-
### Template
100+
### Template
105101

106102
Create a new file named `template-compose.ts` (or `template_compose.py`).
107103

@@ -112,13 +108,14 @@ import { Template } from 'e2b'
112108

113109
export const composeTemplate = Template()
114110
.fromUbuntuImage('24.04')
115-
.runCmd([
116-
'set -euxo pipefail',
117-
'sudo apt-get update',
118-
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io',
119-
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-plugin || true',
120-
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-v2 || true',
121-
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose || true',
111+
.runCmd([
112+
'set -euxo pipefail',
113+
'sudo apt-get update',
114+
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io',
115+
'sudo usermod -aG docker user',
116+
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-plugin || true',
117+
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-v2 || true',
118+
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose || true',
122119
'sudo docker compose version || sudo docker-compose --version',
123120
])
124121
```
@@ -131,13 +128,14 @@ compose_template = (
131128
Template()
132129
.from_ubuntu_image("24.04")
133130
.run_cmd(
134-
[
135-
"set -euxo pipefail",
136-
"sudo apt-get update",
137-
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io",
138-
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-plugin || true",
139-
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-v2 || true",
140-
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose || true",
131+
[
132+
"set -euxo pipefail",
133+
"sudo apt-get update",
134+
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io",
135+
"sudo usermod -aG docker user",
136+
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-plugin || true",
137+
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose-v2 || true",
138+
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-compose || true",
141139
"sudo docker compose version || sudo docker-compose --version",
142140
]
143141
)
@@ -188,10 +186,10 @@ BuildInfo(... name='docker-compose', alias='docker-compose', tags=['default'])
188186
// sandbox-compose.ts
189187
import { Sandbox } from 'e2b'
190188

191-
const sbx = await Sandbox.create('docker-compose')
192-
193-
await sbx.commands.run('mkdir -p /tmp/docker-compose-test', { user: 'root' })
194-
await sbx.files.write('/tmp/docker-compose-test/compose.yaml', [
189+
const sbx = await Sandbox.create('docker-compose')
190+
191+
await sbx.commands.run('mkdir -p /tmp/docker-compose-test')
192+
await sbx.files.write('/tmp/docker-compose-test/compose.yaml', [
195193
'services:',
196194
' hello:',
197195
' image: busybox:1.36',
@@ -211,11 +209,11 @@ elif docker-compose --version >/dev/null 2>&1; then
211209
docker-compose up --abort-on-container-exit --remove-orphans
212210
docker-compose down --remove-orphans -v
213211
echo "Docker Compose ran successfully"
214-
else
215-
echo "No compose command available"
216-
exit 127
217-
fi
218-
`, { user: 'root' })
212+
else
213+
echo "No compose command available"
214+
exit 127
215+
fi
216+
`)
219217

220218
console.log(result.stdout)
221219
await sbx.kill()
@@ -225,10 +223,10 @@ await sbx.kill()
225223
# sandbox_compose.py
226224
from e2b import Sandbox
227225

228-
sbx = Sandbox.create("docker-compose")
229-
230-
sbx.commands.run("mkdir -p /tmp/docker-compose-test", user="root")
231-
sbx.files.write(
226+
sbx = Sandbox.create("docker-compose")
227+
228+
sbx.commands.run("mkdir -p /tmp/docker-compose-test")
229+
sbx.files.write(
232230
"/tmp/docker-compose-test/compose.yaml",
233231
"""
234232
services:
@@ -251,13 +249,12 @@ elif docker-compose --version >/dev/null 2>&1; then
251249
docker-compose up --abort-on-container-exit --remove-orphans
252250
docker-compose down --remove-orphans -v
253251
echo "Docker Compose ran successfully"
254-
else
255-
echo "No compose command available"
256-
exit 127
257-
fi
258-
""",
259-
user="root",
260-
)
252+
else
253+
echo "No compose command available"
254+
exit 127
255+
fi
256+
""",
257+
)
261258

262259
print(result.stdout)
263260
sbx.kill()

0 commit comments

Comments
 (0)