Files
coder-templates/templates/php/main.tf
anthorob 319b647fa9
CI / Validate templates (push) Failing after 5s
CI / Deploy templates (push) Has been skipped
update workflow
2026-03-18 09:10:57 -04:00

115 lines
2.7 KiB
Terraform

terraform {
required_providers {
coder = {
source = "coder/coder"
}
docker = {
source = "kreuzwerker/docker"
}
}
}
data "coder_parameter" "php_version" {
name = "PHP Version"
description = "Select the PHP version for your workspace."
type = "string"
default = "82"
option {
name = "PHP 8.2"
value = "82"
}
option {
name = "PHP 8.4"
value = "84"
}
}
data "coder_parameter" "node_version" {
name = "Node.js Version"
description = "Select the Node.js version for your workspace."
type = "string"
default = "22"
option {
name = "Node 22"
value = "22"
}
option {
name = "Node 20"
value = "20"
}
option {
name = "Node 18"
value = "18"
}
}
module "php_workspace" {
source = "git::https://gitea.bobert.me/anthorob/coder-templates.git//base?ref=main"
docker_image = "gitea.bobert.me/anthorob/coder-images:php${data.coder_parameter.php_version.value}"
language_metadata = [
{
display_name = "PHP Version"
key = "php_version"
script = "php -v | head -n 1 | cut -d ' ' -f 2"
interval = 60
timeout = 1
},
{
display_name = "Node.js Version"
key = "node_version"
script = "[ -s $NVM_DIR/nvm.sh ] && . $NVM_DIR/nvm.sh && node -v 2>/dev/null || echo 'Node not installed'"
interval = 60
timeout = 1
}
]
language_startup_script = <<-EOT
echo $(php -v)
export NVM_DIR="/home/coder/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm install ${data.coder_parameter.node_version.value}
nvm alias default ${data.coder_parameter.node_version.value}
# Ensure nvm loads and uses the correct version in future shells
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc
echo 'nvm use default &> /dev/null' >> ~/.bashrc
echo "Node version set to $(node -v)"
EOT
vscode_extensions = [
"christian-kohler.path-intellisense",
"editorconfig.editorconfig",
"yzhang.markdown-all-in-one",
"usernamehw.errorlens",
"wayou.vscode-todo-highlight",
"oderwat.indent-rainbow",
"ms-azuretools.vscode-docker",
"redhat.vscode-yaml",
"mikestead.dotenv",
"bmewburn.vscode-intelephense-client",
"felixfbecker.php-debug",
"mehedidracula.php-namespace-resolver",
"dbaeumer.vscode-eslint",
"ms-vscode.vscode-typescript-tslint-plugin",
"laravel.vscode-laravel"
]
vscode_settings = {
"php.validate.executablePath" = "/usr/bin/php"
}
jetbrains_ides = ["PS"]
jetbrains_default = ["PS"]
}