Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/chrome/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "chrome",
"version": "1.0.1",
"version": "1.0.2",
"name": "Google Chrome for Containers",
"description": "Installs Google Chrome with container-specific configurations and wrapper script",
"customizations": {
Expand Down
8 changes: 5 additions & 3 deletions src/chrome/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ echo "Installing Google Chrome stable version..."
apt-get update
apt-get install -y wget gnupg2 apt-transport-https ca-certificates dbus-x11

# Add Google Chrome repository
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
# Add Google Chrome repository using modern approach (apt-key is deprecated)
mkdir -p /etc/apt/keyrings
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg
chmod a+r /etc/apt/keyrings/google-chrome.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
apt-get update

# Install Google Chrome stable
Expand Down
2 changes: 1 addition & 1 deletion src/codex/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "codex",
"version": "1.0.0",
"version": "1.0.1",
"name": "Codex CLI",
"description": "Installs OpenAI Codex CLI for local AI-powered coding assistance",
"options": {},
Expand Down
23 changes: 10 additions & 13 deletions src/codex/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ set -e

echo "Installing Codex CLI..."

# Check if Node.js is available
# Check if Node.js is available, install if missing
if ! command -v node &> /dev/null; then
echo "Error: Node.js is required but not found. Please ensure the Node.js feature is installed."
exit 1
echo "Node.js not found. Installing Node.js 22.x..."
apt-get update
apt-get install -y --no-install-recommends curl ca-certificates
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt-get install -y --no-install-recommends nodejs
fi

# Check Node.js version (requires 18+)
Expand All @@ -24,16 +27,10 @@ if ! command -v npm &> /dev/null; then
exit 1
fi

# Install Codex CLI - prefer remote user installation if available
if [ -n "$_REMOTE_USER" ] && [ "$_REMOTE_USER" != "root" ]; then
echo "Installing Codex CLI as user: $_REMOTE_USER"
NPM_PATH=$(which npm)
BIN_DIR=$(dirname "$NPM_PATH")
su "$_REMOTE_USER" -c "PATH=$BIN_DIR:\$PATH $NPM_PATH install -g @openai/codex"
else
echo "Installing Codex CLI globally as root"
npm install -g @openai/codex
fi
# Install Codex CLI globally as root
# Note: Always install as root since npm's global dir requires root permissions
echo "Installing Codex CLI globally..."
npm install -g @openai/codex

# Verify installation
if ! command -v codex &> /dev/null; then
Expand Down
2 changes: 1 addition & 1 deletion src/gemini-cli/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "gemini-cli",
"version": "1.0.0",
"version": "1.0.1",
"name": "Gemini CLI",
"description": "Installs Google Gemini CLI for AI-powered development assistance",
"options": {},
Expand Down
23 changes: 10 additions & 13 deletions src/gemini-cli/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ set -e

echo "Installing Gemini CLI..."

# Check if Node.js is available
# Check if Node.js is available, install if missing
if ! command -v node &> /dev/null; then
echo "Error: Node.js is required but not found. Please ensure the Node.js feature is installed."
exit 1
echo "Node.js not found. Installing Node.js 22.x..."
apt-get update
apt-get install -y --no-install-recommends curl ca-certificates
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt-get install -y --no-install-recommends nodejs
fi

# Check Node.js version (requires 18+)
Expand All @@ -24,16 +27,10 @@ if ! command -v npm &> /dev/null; then
exit 1
fi

# Install Gemini CLI - prefer remote user installation if available
if [ -n "$_REMOTE_USER" ] && [ "$_REMOTE_USER" != "root" ]; then
echo "Installing Gemini CLI as user: $_REMOTE_USER"
NPM_PATH=$(which npm)
BIN_DIR=$(dirname "$NPM_PATH")
su "$_REMOTE_USER" -c "PATH=$BIN_DIR:\$PATH $NPM_PATH install -g @google/gemini-cli"
else
echo "Installing Gemini CLI globally as root"
npm install -g @google/gemini-cli
fi
# Install Gemini CLI globally as root
# Note: Always install as root since npm's global dir requires root permissions
echo "Installing Gemini CLI globally..."
npm install -g @google/gemini-cli

# Verify installation
if ! command -v gemini &> /dev/null; then
Expand Down
2 changes: 1 addition & 1 deletion src/yek/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "yek",
"version": "1.0.2",
"version": "1.0.3",
"name": "yek",
"description": "Installs yek, a tool for serializing repository files for LLM consumption",
"options": {},
Expand Down
7 changes: 7 additions & 0 deletions src/yek/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,10 @@ fi

# Install yek
curl -fsSL https://azimi.me/yek.sh | bash

# The installer places the binary in ~/.local/bin which may not be in PATH.
# Copy it to /usr/local/bin to ensure it's globally available.
if [ -f "$HOME/.local/bin/yek" ] && ! command -v yek >/dev/null 2>&1; then
cp "$HOME/.local/bin/yek" /usr/local/bin/yek
chmod +x /usr/local/bin/yek
fi
2 changes: 1 addition & 1 deletion test/codex/scenarios.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
}
},
"codex_with_node_image": {
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bullseye",
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bookworm",
"features": {
"codex": {}
}
Expand Down
16 changes: 16 additions & 0 deletions test/codex/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

# This test file will be executed against an auto-generated devcontainer.json that
# includes the 'codex' Feature with no options.

set -e

# Optional: Import test library bundled with the devcontainer CLI
source dev-container-features-test-lib

# Feature-specific tests
check "codex command available" which codex
check "codex shows version" bash -c "codex --version"

# Report results
reportResults
2 changes: 1 addition & 1 deletion test/gemini-cli/scenarios.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
}
},
"gemini_cli_with_node_image": {
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bullseye",
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bookworm",
"features": {
"gemini-cli": {}
}
Expand Down
16 changes: 16 additions & 0 deletions test/gemini-cli/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

# This test file will be executed against an auto-generated devcontainer.json that
# includes the 'gemini-cli' Feature with no options.

set -e

# Optional: Import test library bundled with the devcontainer CLI
source dev-container-features-test-lib

# Feature-specific tests
check "gemini command available" which gemini
check "gemini shows version" bash -c "gemini --version"

# Report results
reportResults
2 changes: 1 addition & 1 deletion test/mcp-language-server/scenarios.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
}
},
"mcp_language_server_with_go_image": {
"image": "mcr.microsoft.com/devcontainers/go:1-1.21-bullseye",
"image": "mcr.microsoft.com/devcontainers/go:1-1.24-bookworm",
"features": {
"mcp-language-server": {}
}
Expand Down