Skip to content

Commit 041011a

Browse files
Add DeveloperAndroid template and auto-provision MakeSpace keys
1 parent 885f660 commit 041011a

File tree

13 files changed

+1907
-33
lines changed

13 files changed

+1907
-33
lines changed

Docker-Images/Designer/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,14 @@ RUN set -e; \
124124
# Desactivar bloqueo/ahorro de pantalla (KDE)
125125
RUN printf '[Daemon]\nTimeout=0\nLockOnResume=false\nLockOnSuspend=false\nAutolock=false\n' > /etc/xdg/kscreenlockerrc
126126

127+
# Extensiones VS Code preinstaladas para escritorio/remoto
128+
RUN su - coder -c 'set -e; \
129+
EXT_LIST="anthropic.claude-code opencodeai.opencode google.gemini-code-assistant qwen-team.qwen-vscode openai.openai"; \
130+
for ext in $EXT_LIST; do \
131+
code --install-extension "$ext" --force --user-data-dir /home/coder/.vscode/data --extensions-dir /home/coder/.vscode/extensions || true; \
132+
done; \
133+
mkdir -p /home/coder/.vscode-server/extensions'
134+
127135
# AppImage Pool (gestor de AppImages con actualizaciones e integración en menú)
128136
ARG APPIMAGEPOOL_VERSION=5.0.0
129137
RUN <<'EOSH'

Docker-Images/Developer/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ TARGET_BIN=/usr/share/claude-desktop/claude-desktop EXTRA_FLAGS="--disable-gpu"
165165
TARGET_BIN=/usr/share/code/bin/code EXTRA_FLAGS="" wrap /usr/bin/code /usr/share/code/bin/code
166166
EOSH
167167

168+
# Extensiones VS Code preinstaladas para escritorio/remoto
169+
RUN su - coder -c 'set -e; \
170+
EXT_LIST="anthropic.claude-code opencodeai.opencode google.gemini-code-assistant qwen-team.qwen-vscode openai.openai"; \
171+
for ext in $EXT_LIST; do \
172+
code --install-extension "$ext" --force --user-data-dir /home/coder/.vscode/data --extensions-dir /home/coder/.vscode/extensions || true; \
173+
done; \
174+
mkdir -p /home/coder/.vscode-server/extensions'
175+
168176
# AppImage Pool (gestor de AppImages con actualizaciones e integración en menú)
169177
ARG APPIMAGEPOOL_VERSION=5.0.0
170178
RUN <<'EOSH'
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Developer Android image with KDE desktop and Android SDK
2+
FROM ghcr.io/makespacemadrid/coder-mks-desktop-kde:latest
3+
4+
LABEL org.opencontainers.image.title="coder-mks-developer-android" \
5+
org.opencontainers.image.description="Coder Desktop KDE con toolchain Android (SDK/CLI), Node 20 y VS Code" \
6+
org.opencontainers.image.source="https://github.com/makespacemadrid/coder-workspace-desktop" \
7+
org.opencontainers.image.url="ghcr.io/makespacemadrid/coder-mks-developer-android:latest" \
8+
com.centurylinklabs.watchtower.enable="true" \
9+
com.centurylinklabs.watchtower.scope="coder-workspaces" \
10+
com.centurylinklabs.watchtower.lifecycle="rolling"
11+
12+
USER root
13+
14+
ENV DEBIAN_FRONTEND=noninteractive
15+
16+
# Paquetes base para desarrollo Android + utilidades
17+
RUN dpkg --add-architecture i386 && \
18+
apt-get update && \
19+
apt-get install -y --no-install-recommends \
20+
build-essential \
21+
pkg-config \
22+
openjdk-17-jdk \
23+
python3 python3-venv python3-pip pipx \
24+
unzip zip \
25+
git git-lfs \
26+
jq \
27+
curl wget \
28+
ca-certificates \
29+
libc6:i386 libstdc++6:i386 libgcc-s1:i386 libz1:i386 libncurses5:i386 \
30+
libpulse0 \
31+
adb \
32+
dnsutils net-tools iputils-ping \
33+
ripgrep fzf \
34+
direnv \
35+
bash-completion \
36+
nano \
37+
lsof \
38+
htop \
39+
tmux \
40+
byobu \
41+
pulseaudio pulseaudio-utils alsa-utils \
42+
libglu1-mesa \
43+
&& rm -rf /var/lib/apt/lists/*
44+
45+
# Node.js 20 + package managers (para React Native/JS tooling)
46+
RUN install -m 0755 -d /etc/apt/keyrings && \
47+
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
48+
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" \
49+
| tee /etc/apt/sources.list.d/nodesource.list > /dev/null && \
50+
apt-get update && \
51+
apt-get install -y --no-install-recommends nodejs && \
52+
npm install -g --omit=dev --no-update-notifier --no-fund \
53+
pnpm \
54+
yarn \
55+
@openai/codex \
56+
@anthropic-ai/claude-code \
57+
@google/gemini-cli && \
58+
npm cache clean --force && \
59+
rm -rf /var/lib/apt/lists/*
60+
61+
# Visual Studio Code
62+
RUN install -m 0755 -d /etc/apt/keyrings && \
63+
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft.gpg && \
64+
chmod a+r /etc/apt/keyrings/microsoft.gpg && \
65+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/code stable main" \
66+
| tee /etc/apt/sources.list.d/vscode.list > /dev/null && \
67+
apt-get update && \
68+
apt-get install -y --no-install-recommends code && \
69+
rm -rf /var/lib/apt/lists/*
70+
71+
# Android SDK commandline tools + componentes principales
72+
ENV ANDROID_HOME=/opt/android-sdk \
73+
ANDROID_SDK_ROOT=/opt/android-sdk \
74+
ANDROID_USER_HOME=/home/coder/.android \
75+
PATH=$PATH:/opt/android-sdk/platform-tools:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/emulator
76+
77+
ARG ANDROID_SDK_VERSION=11076708
78+
RUN mkdir -p /opt/android-sdk/cmdline-tools && \
79+
curl -fsSL "https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip" -o /tmp/cmdline-tools.zip && \
80+
unzip -q /tmp/cmdline-tools.zip -d /opt/android-sdk/cmdline-tools && \
81+
mv /opt/android-sdk/cmdline-tools/cmdline-tools /opt/android-sdk/cmdline-tools/latest && \
82+
rm /tmp/cmdline-tools.zip && \
83+
yes | /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses >/dev/null || true && \
84+
/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --update && \
85+
/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager \
86+
"platform-tools" \
87+
"build-tools;34.0.0" \
88+
"platforms;android-34" \
89+
"emulator" \
90+
"cmdline-tools;latest" && \
91+
chown -R coder:coder /opt/android-sdk
92+
93+
# Extensiones VS Code preinstaladas
94+
RUN su - coder -c 'set -e; \
95+
EXT_LIST="anthropic.claude-code opencodeai.opencode google.gemini-code-assistant qwen-team.qwen-vscode openai.openai ms-vscode.cpptools"; \
96+
for ext in $EXT_LIST; do \
97+
code --install-extension "$ext" --force --user-data-dir /home/coder/.vscode/data --extensions-dir /home/coder/.vscode/extensions || true; \
98+
done; \
99+
mkdir -p /home/coder/.vscode-server/extensions'
100+
101+
# Electron sandbox workaround for VS Code
102+
ENV ELECTRON_DISABLE_SANDBOX=1 \
103+
ELECTRON_OZONE_PLATFORM_HINT=auto
104+
RUN <<'EOSH'
105+
set -e
106+
wrap() {
107+
local name="$1"; local target="$2"; local extra="$3"
108+
if [ -x "$target" ]; then
109+
mv "$name" "${name}.real" || true
110+
cat > "$name" <<SHWRAP
111+
#!/bin/sh
112+
exec env ELECTRON_DISABLE_SANDBOX=1 ELECTRON_OZONE_PLATFORM_HINT="${ELECTRON_OZONE_PLATFORM_HINT:-auto}" \
113+
"$target" --no-sandbox --disable-gpu-sandbox --disable-setuid-sandbox --disable-seccomp-filter-sandbox --no-zygote $EXTRA_FLAGS "$@"
114+
SHWRAP
115+
chmod +x "$name"
116+
fi
117+
}
118+
TARGET_BIN=/usr/share/code/bin/code EXTRA_FLAGS="" wrap /usr/bin/code /usr/share/code/bin/code
119+
EOSH

workspaces/Designer/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
display_name: MakeSpace Designer
3-
description: Entorno gráfico para diseño 2D/3D y electrónica
3+
description: Entorno gráfico para diseño 2D/3D y electrónica (autoprovisiona key IA MakeSpace si no rellenas OpenCode)
44
icon: icon.svg
55
maintainer_github: makespacemadrid
66
tags: [design, cad, 3d, electronics, makespace]
@@ -24,7 +24,7 @@ Template con escritorio KDE/KasmVNC y herramientas de diseño 2D/3D + electróni
2424
- `Home`: usa volumen Docker por defecto o monta `/home/coder` desde el host (añade UID si no es 1000). Puedes reutilizar o nombrar el volumen.
2525
- `host-data`: monta una ruta concreta del host en `~/host-data` si necesitas intercambiar archivos puntuales.
2626
- `Repositorio Git`: clona en `~/projects` al primer arranque.
27-
- `OpenCode`: añade URL/API key solo si quieres un proveedor OpenAI-compatible preconfigurado.
27+
- `OpenCode`: si lo dejas vacío, se autoprovisiona una key de IA MakeSpace válida 30 días (`http://iapi.mksmad.org`).
2828

2929
## Notas
3030
- Home persistente en volumen Docker (`/home/coder`). Escritorio con accesos directos a las apps clave.

0 commit comments

Comments
 (0)