Files
coder-templates/templates/php/main.tf
T
2025-07-10 23:19:11 -04:00

107 lines
2.2 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.0"
value = "80"
}
option {
name = "PHP 7.4"
value = "74"
}
}
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://git.bobert.me/anthorob/coder-templates.git//coder-base?ref=main"
docker_image = "registry.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 = "node -v || 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 use ${data.coder_parameter.node_version.value}
echo "Node version set to $(node -v)"
EOT
vscode_extensions = [
"bmewburn.vscode-intelephense-client",
"felixfbecker.php-debug",
"mehedidracula.php-namespace-resolver",
"dbaeumer.vscode-eslint",
"mikestead.dotenv",
"christian-kohler.path-intellisense",
"ms-vscode.vscode-typescript-tslint-plugin",
]
vscode_settings = {
"php.validate.executablePath" = "/usr/bin/php"
}
jetbrains_ides = ["PS"]
jetbrains_default = "PS"
}