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
example: added docker local workspace
  • Loading branch information
ntimo committed Apr 16, 2022
commit 526244f2ef7619447fa4d3bccbc9467db244842b
5 changes: 5 additions & 0 deletions examples/docker-local/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
name: Develop in Docker on the same host that runs Coder
description: Get started with Linux development using a Docker container locally as workspace provider.
tags: [local, docker]
---
51 changes: 51 additions & 0 deletions examples/docker-local/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
terraform {
required_providers {
coder = {
source = "coder/coder"
version = "~> 0.3.1"
}
docker = {
source = "kreuzwerker/docker"
version = "~> 2.16.0"
}
}
}

provider "docker" {
host = "unix:///var/run/docker.sock"
}

data "coder_workspace" "me" {
}

resource "coder_agent" "dev" {
arch = "amd64"
os = "linux"
}

variable "docker_image" {
description = "What docker image would you like to use for your workspace?"
default = "codercom/enterprise-base:ubuntu"
validation {
condition = contains(["codercom/enterprise-base:ubuntu", "codercom/enterprise-node:ubuntu", "codercom/enterprise-java:ubuntu"], var.docker_image)
error_message = "Invalid Docker Image!"
}
}

resource "docker_volume" "coder_volume" {
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root"
}

resource "docker_container" "workspace" {
count = data.coder_workspace.me.start_count
image = var.docker_image
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root"
dns = ["1.1.1.1"]
command = ["sh", "-c", coder_agent.dev.init_script]
env = ["CODER_TOKEN=${coder_agent.dev.token}"]
volumes {
container_path = "/home/coder/"
volume_name = docker_volume.coder_volume.name
read_only = false
}
}