Skip to content

Commit 6ac212c

Browse files
Add Chrome and Antigravity; update Android Studio
1 parent 8c69a9d commit 6ac212c

8 files changed

Lines changed: 124 additions & 22 deletions

File tree

Docker-Images/Developer/Dockerfile

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,26 @@ RUN install -m 0755 -d /etc/apt/keyrings && \
105105
apt-get install -y --no-install-recommends gh && \
106106
rm -rf /var/lib/apt/lists/*
107107

108+
# Google Chrome (repositorio oficial)
109+
RUN install -m 0755 -d /etc/apt/keyrings && \
110+
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg && \
111+
chmod a+r /etc/apt/keyrings/google-chrome.gpg && \
112+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/google-chrome.gpg] https://dl.google.com/linux/chrome/deb/ stable main" \
113+
| tee /etc/apt/sources.list.d/google-chrome.list > /dev/null && \
114+
apt-get update && \
115+
apt-get install -y --no-install-recommends google-chrome-stable && \
116+
rm -rf /var/lib/apt/lists/*
117+
118+
# Antigravity auto-updater
119+
RUN install -m 0755 -d /etc/apt/keyrings && \
120+
curl -fsSL https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | gpg --dearmor --yes -o /etc/apt/keyrings/antigravity-repo-key.gpg && \
121+
chmod a+r /etc/apt/keyrings/antigravity-repo-key.gpg && \
122+
echo "deb [signed-by=/etc/apt/keyrings/antigravity-repo-key.gpg] https://us-central1-apt.pkg.dev/projects/antigravity-auto-updater-dev/ antigravity-debian main" \
123+
| tee /etc/apt/sources.list.d/antigravity.list > /dev/null && \
124+
apt-get update && \
125+
apt-get install -y --no-install-recommends antigravity && \
126+
rm -rf /var/lib/apt/lists/*
127+
108128
# Node.js 20 y las CLIs de IA para trabajo con código
109129
RUN install -m 0755 -d /etc/apt/keyrings && \
110130
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
@@ -144,14 +164,53 @@ RUN set -e; \
144164
rm -rf /var/lib/apt/lists/*
145165

146166
# GitHub Desktop (shiftkey build) y Claude Desktop (unofficial build)
147-
ARG GITHUB_DESKTOP_VERSION=3.4.13-linux1
148-
ARG GITHUB_DESKTOP_DEB_URL=https://github.com/shiftkey/desktop/releases/download/release-${GITHUB_DESKTOP_VERSION}/GitHubDesktop-linux-amd64-${GITHUB_DESKTOP_VERSION}.deb
149-
ARG CLAUDE_DESKTOP_VERSION=0.14.10
150-
ARG CLAUDE_DESKTOP_DEB_URL=https://github.com/aaddrick/claude-desktop-debian/releases/download/v1.1.10%2Bclaude${CLAUDE_DESKTOP_VERSION}/claude-desktop_${CLAUDE_DESKTOP_VERSION}_amd64.deb
151-
RUN curl -fsSL "${GITHUB_DESKTOP_DEB_URL}" -o /tmp/github-desktop.deb && \
152-
curl -fsSL "${CLAUDE_DESKTOP_DEB_URL}" -o /tmp/claude-desktop.deb && \
153-
apt-get update && \
154-
apt-get install -y --no-install-recommends /tmp/github-desktop.deb /tmp/claude-desktop.deb && \
167+
ARG GITHUB_DESKTOP_REPO=shiftkey/desktop
168+
ARG CLAUDE_DESKTOP_REPO=aaddrick/claude-desktop-debian
169+
RUN set -e; \
170+
GH_DESKTOP_URL="$(python3 - <<'PY' "$GITHUB_DESKTOP_REPO"
171+
import json
172+
import re
173+
import sys
174+
import urllib.request
175+
176+
repo = sys.argv[1]
177+
with urllib.request.urlopen(f"https://api.github.com/repos/{repo}/releases/latest") as resp:
178+
data = json.load(resp)
179+
180+
pattern = re.compile(r"GitHubDesktop-linux-amd64-.*\\.deb$")
181+
for asset in data.get("assets", []):
182+
name = asset.get("name", "")
183+
if pattern.search(name):
184+
print(asset["browser_download_url"])
185+
break
186+
else:
187+
raise SystemExit("No GitHub Desktop .deb asset found")
188+
PY
189+
)"; \
190+
CLAUDE_URL="$(python3 - <<'PY' "$CLAUDE_DESKTOP_REPO"
191+
import json
192+
import re
193+
import sys
194+
import urllib.request
195+
196+
repo = sys.argv[1]
197+
with urllib.request.urlopen(f"https://api.github.com/repos/{repo}/releases/latest") as resp:
198+
data = json.load(resp)
199+
200+
pattern = re.compile(r"claude-desktop_.*_amd64\\.deb$")
201+
for asset in data.get("assets", []):
202+
name = asset.get("name", "")
203+
if pattern.search(name):
204+
print(asset["browser_download_url"])
205+
break
206+
else:
207+
raise SystemExit("No Claude Desktop .deb asset found")
208+
PY
209+
)"; \
210+
curl -fsSL "$GH_DESKTOP_URL" -o /tmp/github-desktop.deb; \
211+
curl -fsSL "$CLAUDE_URL" -o /tmp/claude-desktop.deb; \
212+
apt-get update; \
213+
apt-get install -y --no-install-recommends /tmp/github-desktop.deb /tmp/claude-desktop.deb; \
155214
rm -rf /var/lib/apt/lists/* /tmp/github-desktop.deb /tmp/claude-desktop.deb
156215

157216
# Electron apps dentro de contenedores Docker necesitan desactivar el sandbox

Docker-Images/DeveloperAndroid/Dockerfile

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN dpkg --add-architecture i386 && \
2323
python3 python3-venv python3-pip pipx \
2424
unzip zip \
2525
git git-lfs \
26+
gnupg \
2627
jq \
2728
curl wget \
2829
ca-certificates \
@@ -58,6 +59,26 @@ RUN dpkg --add-architecture i386 && \
5859
ssl-cert \
5960
&& rm -rf /var/lib/apt/lists/*
6061

62+
# Google Chrome (repositorio oficial)
63+
RUN install -m 0755 -d /etc/apt/keyrings && \
64+
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg && \
65+
chmod a+r /etc/apt/keyrings/google-chrome.gpg && \
66+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/google-chrome.gpg] https://dl.google.com/linux/chrome/deb/ stable main" \
67+
| tee /etc/apt/sources.list.d/google-chrome.list > /dev/null && \
68+
apt-get update && \
69+
apt-get install -y --no-install-recommends google-chrome-stable && \
70+
rm -rf /var/lib/apt/lists/*
71+
72+
# Antigravity auto-updater
73+
RUN install -m 0755 -d /etc/apt/keyrings && \
74+
curl -fsSL https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | gpg --dearmor --yes -o /etc/apt/keyrings/antigravity-repo-key.gpg && \
75+
chmod a+r /etc/apt/keyrings/antigravity-repo-key.gpg && \
76+
echo "deb [signed-by=/etc/apt/keyrings/antigravity-repo-key.gpg] https://us-central1-apt.pkg.dev/projects/antigravity-auto-updater-dev/ antigravity-debian main" \
77+
| tee /etc/apt/sources.list.d/antigravity.list > /dev/null && \
78+
apt-get update && \
79+
apt-get install -y --no-install-recommends antigravity && \
80+
rm -rf /var/lib/apt/lists/*
81+
6182
# Añadir coder al grupo KVM para aceleración del emulador
6283
RUN usermod -aG kvm coder
6384

@@ -101,9 +122,9 @@ RUN install -m 0755 -d /etc/apt/keyrings && \
101122
ENV ANDROID_HOME=/opt/android-sdk \
102123
ANDROID_SDK_ROOT=/opt/android-sdk \
103124
ANDROID_USER_HOME=/home/coder/.android \
104-
PATH=$PATH:/opt/android-sdk/platform-tools:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/emulator:/opt/gradle/gradle-9.2.1/bin
125+
PATH=$PATH:/opt/android-sdk/platform-tools:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/emulator:/opt/gradle/gradle-9.3.0/bin
105126

106-
ARG ANDROID_SDK_VERSION=11076708
127+
ARG ANDROID_SDK_VERSION=13114758
107128
RUN mkdir -p /opt/android-sdk/cmdline-tools && \
108129
curl -fsSL "https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip" -o /tmp/cmdline-tools.zip && \
109130
unzip -q /tmp/cmdline-tools.zip -d /opt/android-sdk/cmdline-tools && \
@@ -118,7 +139,7 @@ RUN mkdir -p /opt/android-sdk/cmdline-tools && \
118139
install -d -o coder -g coder /home/coder/.android
119140

120141
# Android Studio
121-
ARG ANDROID_STUDIO_VERSION=2025.2.2.7
142+
ARG ANDROID_STUDIO_VERSION=2025.2.3.9
122143
RUN curl -fsSL "https://redirector.gvt1.com/edgedl/android/studio/ide-zips/${ANDROID_STUDIO_VERSION}/android-studio-${ANDROID_STUDIO_VERSION}-linux.tar.gz" -o /tmp/android-studio.tar.gz && \
123144
tar -xzf /tmp/android-studio.tar.gz -C /opt && \
124145
rm /tmp/android-studio.tar.gz && \
@@ -148,14 +169,14 @@ Type=Application
148169
Categories=Development;IDE;
149170
EOF
150171
RUN chmod +x /usr/share/applications/android-studio.desktop && \
151-
for app in android-studio.desktop code.desktop firefox.desktop; do \
172+
for app in android-studio.desktop code.desktop firefox.desktop google-chrome.desktop; do \
152173
if [ -f "/usr/share/applications/${app}" ]; then \
153174
ln -sf "/usr/share/applications/${app}" "/etc/skel/Desktop/${app}"; \
154175
fi; \
155176
done
156177

157178
# Gradle
158-
RUN curl -fsSL "https://services.gradle.org/distributions/gradle-9.2.1-bin.zip" -o /tmp/gradle.zip && \
179+
RUN curl -fsSL "https://services.gradle.org/distributions/gradle-9.3.0-bin.zip" -o /tmp/gradle.zip && \
159180
unzip -q /tmp/gradle.zip -d /opt/gradle && \
160181
rm /tmp/gradle.zip
161182

workspaces/AdvancedHostDANGER/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ tags: [docker, workspace, host, danger, makespace]
1313
## Qué incluye
1414
- Escritorio XFCE vía KasmVNC, code-server opcional y shell con tooling dev.
1515
- Docker del host (`/var/run/docker.sock`), `network_mode = host`, GPUs del host.
16-
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, Firefox, Geany, AppImage Pool.
16+
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, Google Chrome, Firefox, Geany, AppImage Pool.
1717
- Stack dev: Docker Engine/Compose, Node.js 20, CLIs de IA (Codex, Claude, Gemini, Continue, Qwen), git/gh, pulseaudio/ALSA.
1818
- Python listo para venvs (`python3-venv`) + venv base en `~/.venvs/base`.
1919
- Accesos directos precreados en el escritorio y módulos KasmVNC, Filebrowser, OpenCode. RDP es solo para workspaces Windows según [la guía de Coder](https://coder.com/docs/user-guides/workspace-access/remote-desktops); esta imagen Linux usa KasmVNC.
20+
- Antigravity auto-updater (`antigravity`) preinstalado.
2021

2122
## Uso recomendado
2223
- Pruebas que requieran Docker/Network del host, diagnósticos de red, acceso a GPUs del host.

workspaces/AdvancedHostDANGER/main.tf

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ JSONCFG
337337
338338
# Refrescar accesos directos en el escritorio (si faltan)
339339
mkdir -p ~/Desktop
340-
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop geany.desktop appimagepool.desktop; do
340+
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop google-chrome.desktop geany.desktop appimagepool.desktop; do
341341
src="/usr/share/applications/$f"
342342
if [ -f "$src" ] && [ ! -e "$HOME/Desktop/$f" ]; then
343343
ln -sf "$src" "$HOME/Desktop/$f"
@@ -449,7 +449,10 @@ GENMKS
449449
"plugin": [
450450
"opencode-openai-codex-auth@4.0.2",
451451
"opencode-gemini-auth@latest",
452-
"opencode-antigravity-auth@beta"
452+
"opencode-antigravity-auth@beta",
453+
"opencode-agent-memory",
454+
"opencode-mystatus",
455+
"opencode-handoff"
453456
],
454457
"provider": {
455458
"openai": {

workspaces/Developer/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ Workspace de desarrollo general, con **Docker in Docker (DinD)**, escritorio XFC
1818
## Qué incluye
1919
- Docker Engine y docker-compose-plugin internos (DinD, no se usa el socket del host).
2020
- Escritorio XFCE/KasmVNC, code-server y Filebrowser. RDP solo aplica a workspaces Windows según [la guía de Coder](https://coder.com/docs/user-guides/workspace-access/remote-desktops).
21-
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, Firefox, Geany, AppImage Pool.
21+
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, Google Chrome, Firefox, Geany, AppImage Pool.
2222
- Node.js 20, CLIs de IA (OpenAI/Codex, Claude, Gemini, Continue, Qwen), git/gh y audio (PulseAudio/ALSA).
2323
- Utilidades CLI extra: `yq`, `sqlite3`.
2424
- Python con `python3-venv` y venv base en `~/.venvs/base`.
2525
- Persistencia en `/home/coder` (volumen o bind mount) y `/var/lib/docker`.
26+
- Antigravity auto-updater (`antigravity`) preinstalado.
2627

2728
## Creación rápida en Coder
2829
- Si es tu primera vez, probablemente no necesitas tocar nada: baja al final y pulsa `Create workspace`.

workspaces/Developer/main.tf

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ JSONCFG
380380
381381
# Refrescar accesos directos en el escritorio (si faltan)
382382
mkdir -p ~/Desktop
383-
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop geany.desktop appimagepool.desktop; do
383+
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop google-chrome.desktop geany.desktop appimagepool.desktop; do
384384
src="/usr/share/applications/$f"
385385
if [ -f "$src" ] && [ ! -e "$HOME/Desktop/$f" ]; then
386386
ln -sf "$src" "$HOME/Desktop/$f"
@@ -552,7 +552,10 @@ GENMKS
552552
"plugin": [
553553
"opencode-openai-codex-auth@4.0.2",
554554
"opencode-gemini-auth@latest",
555-
"opencode-antigravity-auth@beta"
555+
"opencode-antigravity-auth@beta",
556+
"opencode-agent-memory",
557+
"opencode-mystatus",
558+
"opencode-handoff"
556559
],
557560
"provider": {
558561
"openai": {
@@ -1076,6 +1079,14 @@ module "claude-code" {
10761079
depends_on = [module.opencode]
10771080
}
10781081

1082+
module "antigravity" {
1083+
count = data.coder_workspace.me.start_count
1084+
source = "registry.coder.com/coder/antigravity/coder"
1085+
version = "~> 1.0"
1086+
agent_id = coder_agent.main.id
1087+
folder = "/home/coder/Projects"
1088+
}
1089+
10791090
module "jupyterlab" {
10801091
count = data.coder_workspace.me.start_count
10811092
source = "registry.coder.com/coder/jupyterlab/coder"

workspaces/DeveloperAndroid/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ Workspace gráfico KDE/KasmVNC con toolchain Android preinstalado. Usa la imagen
1212

1313
## Qué incluye
1414
- Android SDK CLI con `platform-tools`, emulator y `cmdline-tools;latest` (instala tus propias plataformas/ build-tools según el proyecto).
15+
- Android Studio Otter 3 Feature Drop (2025.2.3.x).
1516
- Java 17, Node.js 20 (npm/pnpm/yarn), git/git-lfs y utilidades de desarrollo.
1617
- VS Code listo para personalizar tus extensiones (sin bundle preinstalado) y soporte C/C++ vía paquetes base.
17-
- JetBrains Toolbox 3.1 + módulo JetBrains de Coder para lanzar IntelliJ IDEA remoto (instala el plugin Android) vía JetBrains Gateway/Coder Desktop.
18+
- JetBrains Toolbox + módulo JetBrains de Coder para lanzar IntelliJ IDEA remoto (instala el plugin Android) vía JetBrains Gateway/Coder Desktop.
19+
- Google Chrome y Firefox preinstalados.
1820
- Módulos Coder: KasmVNC (KDE), code-server, Filebrowser, OpenCode, git-config, tmux.
1921
- Autoprovisiona una key de IA MakeSpace (30 días) si dejas activa la casilla `[AI/OpenCode] Provisionar API key MakeSpace automáticamente` y el endpoint está configurado por entorno.
22+
- Antigravity auto-updater (`antigravity`) preinstalado.
2023

2124
## Creación rápida en Coder
2225
- `GPU`: viene activada por defecto; desactívala si no la necesitas.

workspaces/DeveloperAndroid/main.tf

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ JSONCFG
363363
364364
# Refrescar accesos directos en el escritorio (si faltan)
365365
mkdir -p ~/Desktop
366-
for f in android-studio.desktop code.desktop firefox.desktop; do
366+
for f in android-studio.desktop code.desktop firefox.desktop google-chrome.desktop; do
367367
src="/usr/share/applications/$f"
368368
if [ -f "$src" ] && [ ! -e "$HOME/Desktop/$f" ]; then
369369
ln -sf "$src" "$HOME/Desktop/$f"
@@ -474,7 +474,10 @@ GENMKS
474474
"plugin": [
475475
"opencode-openai-codex-auth@4.0.2",
476476
"opencode-gemini-auth@latest",
477-
"opencode-antigravity-auth@beta"
477+
"opencode-antigravity-auth@beta",
478+
"opencode-agent-memory",
479+
"opencode-mystatus",
480+
"opencode-handoff"
478481
],
479482
"provider": {
480483
"openai": {

0 commit comments

Comments
 (0)