Skip to content

Conversation

@EdwardAngert
Copy link
Contributor

@EdwardAngert EdwardAngert commented Jul 16, 2025

WIP

update dev container docs for GA

followup to #18582

To do

  • edit docs/user-guides/devcontainers/working-with-dev-containers.md
    • current doc's approach is for pre-ga
    • does it still need ssh/web terminal/VS Code sections?
    • does it still need the Port Forwarding section?
    • Dev Container Features can be both about features of dev containers or dev container features and the latter is now part of the main repo
  • edit docs/user-guides/devcontainers/index.md
  • docs where we use the git clone module
    • it's technically optional, but more likely that not-using it would be the exception, so we should probably default to configurations that treat it as a default (like using repo_dir)
  • address / move comments from 18582

@EdwardAngert EdwardAngert self-assigned this Jul 16, 2025
@EdwardAngert EdwardAngert added the docs Area: coder.com/docs label Jul 16, 2025

* [agent](https://github.com/coder/coder/tree/main/agent): core logic of a workspace agent, supports DevContainers, remote SSH, startup/shutdown script execution. Protobuf definitions for DRPC communication with `coderd` are kept in [proto](https://github.com/coder/coder/tree/main/agent/proto).
* [agent](https://github.com/coder/coder/tree/main/agent): core logic of a workspace agent, supports dev containers, remote SSH, startup/shutdown script execution. Protobuf definitions for DRPC communication with `coderd` are kept in [proto](https://github.com/coder/coder/tree/main/agent/proto).
* [cli](https://github.com/coder/coder/tree/main/cli): CLI interface for `coder` command built on [coder/serpent](https://github.com/coder/serpent). Input controls are defined in [cliui](https://github.com/coder/coder/tree/docs-backend-contrib-guide/cli/cliui), and [testdata](https://github.com/coder/coder/tree/docs-backend-contrib-guide/cli/testdata) contains golden files for common CLI calls

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [linkspector] reported by reviewdog 🐶
Cannot reach https://github.com/coder/coder/tree/docs-backend-contrib-guide/cli/cliui Status: 404


* [agent](https://github.com/coder/coder/tree/main/agent): core logic of a workspace agent, supports DevContainers, remote SSH, startup/shutdown script execution. Protobuf definitions for DRPC communication with `coderd` are kept in [proto](https://github.com/coder/coder/tree/main/agent/proto).
* [agent](https://github.com/coder/coder/tree/main/agent): core logic of a workspace agent, supports dev containers, remote SSH, startup/shutdown script execution. Protobuf definitions for DRPC communication with `coderd` are kept in [proto](https://github.com/coder/coder/tree/main/agent/proto).
* [cli](https://github.com/coder/coder/tree/main/cli): CLI interface for `coder` command built on [coder/serpent](https://github.com/coder/serpent). Input controls are defined in [cliui](https://github.com/coder/coder/tree/docs-backend-contrib-guide/cli/cliui), and [testdata](https://github.com/coder/coder/tree/docs-backend-contrib-guide/cli/testdata) contains golden files for common CLI calls

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [linkspector] reported by reviewdog 🐶
Cannot reach https://github.com/coder/coder/tree/docs-backend-contrib-guide/cli/testdata Status: 404

- SSH access requires using the `--container` flag
- Some devcontainer features may not work as expected
```shell
ssh <agent>.<workspace>.me.coder
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't get it working with coder ssh, but it worked like this

@github-actions github-actions bot added the stale This issue is like stale bread. label Jul 25, 2025
@coderabbitai
Copy link

coderabbitai bot commented Jul 25, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 18582-dev-containers

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot closed this Jul 28, 2025
@EdwardAngert EdwardAngert removed the stale This issue is like stale bread. label Jul 28, 2025
@EdwardAngert EdwardAngert reopened this Jul 28, 2025
Copy link
Contributor Author

@EdwardAngert EdwardAngert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more changes incoming + matching up more comments from the old PR


Run independent dev containers in the same workspace so each component appears as its own agent.

In this example, there are two: repositories called `frontend` and `backend`:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added repositories called to show that the the directories come from the project name per https://github.com/coder/coder/pull/18582/files#r2194698875

source = "registry.coder.com/modules/git-clone/coder"
agent_id = coder_agent.main.id
url = "https://github.com/example/repository.git"
base_dir = "" # defaults to $HOME
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the module defaults to $HOME but I want to be able to show that people can change that too if they need

re @mafredri in https://github.com/coder/coder/pull/18582/files#r2194700957

resource "coder_devcontainer" "backend" {
count = data.coder_workspace.me.start_count
agent_id = coder_agent.main.id
workspace_folder = module.git-clone-backend[0].repo_dir
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the docs now default to assuming the git-clone module

https://github.com/coder/coder/pull/18582/files#r2194704910

}
```

Each dev container appears as a separate agent, so developers can connect to each separately.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +52 to +54
data "coder_parameter" "autostart_frontend" {
type = "bool"
name = "Autostart frontend container"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from @mafredri 's suggestion to avoid enable in the name

https://github.com/coder/coder/pull/18582/files#r2194722023

Use the
[devcontainers-cli](https://registry.coder.com/modules/devcontainers-cli) module
to ensure the `@devcontainers/cli` is installed in your workspace:
to install `devcontainers/cli` in your workspace:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm torn about this one

it could be @devcontainers/cli but that doesn't match the text they're going to enter

https://github.com/coder/coder/pull/18582/files#r2194456888


- The `devcontainers-cli` module requires npm.

- You can use an image that already includes npm, such as `codercom/enterprise-node:ubuntu`.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mafredri

We can recommend this image, but I think we should mention it includes both Docker and npm. If the user is trying to solve the Docker pre-requisite and then be recommended to switch to a base that "only" targets npm, that may be confusing.

in my testing, the Docker prereq had to be solved separately from npm, so even if this image has Docker, I still had to set up sysbox first, even when I tried with privileged = true


The `repo_dir` output from the git-clone module provides the path to the cloned repository.

### If you're not using the git-clone module
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


The `blocking` behavior ensures Docker is fully started before the workspace is considered ready, which is critical for dev containers to function correctly.

## Define the Dev Container Resource
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to review the order of the sections here - the heading is about defining the resource, but it starts with git-clone

@github-actions github-actions bot added the stale This issue is like stale bread. label Aug 6, 2025
@github-actions github-actions bot closed this Aug 10, 2025
mafredri added a commit that referenced this pull request Dec 3, 2025
Update dev containers documentation to reflect GA status (v2.24.0+) and
fix various inaccuracies identified in PR #18907.

Key changes:

User guides (docs/user-guides/devcontainers/):
- Rewrite SSH section with correct agent-based access patterns
- Remove deprecated --container flag examples
- Add native port forwarding to sub-agents as primary method
- Fix prerequisites to note Docker + devcontainers CLI requirements
- Clarify that discovery is on by default but autostart is off
- Expand troubleshooting guide with Docker, agent naming, and
  connection issues

Admin docs:
- Rename devcontainers/ folder to envbuilder/ to clarify it's an
  alternative approach
- Add notes recommending native Dev Containers integration
- Fix module registry URLs (dev.registry -> registry.coder.com)
- Update links to prioritize native integration over Envbuilder

Also adds .markdownlint-cli2.jsonc to ignore PLAN.md in linting.
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies from limited implementation knowledge. The main issues
were:

- SSH examples used the deprecated --container flag instead of the
  agent-based access pattern (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is off
  by default (discovery is on, but containers don't auto-start)

The Envbuilder docs were in a folder called "devcontainers" which
caused confusion about which approach was primary. Renamed to
"envbuilder" and added notes recommending native Dev Containers for
most use cases.

Also fixes registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update the dev containers docs but was closed due
to inaccuracies. The main issues were:

- SSH examples used the deprecated --container flag instead of
  agent-based access (coder ssh workspace.agent)
- Port forwarding focused on appPort when native forwarding to
  sub-agents is the primary method
- Prerequisites implied users needed to "enable" Dev Containers when
  it's on by default—the real requirements are Docker and the CLI
- The "automatic build" section was misleading since autostart is
  off by default (discovery finds configs, users click to start)

Changes made:

User guides (docs/user-guides/devcontainers/):
- Rewrote SSH and port forwarding sections with correct patterns
- Fixed prerequisites to reflect actual requirements
- Moved Features list before Getting Started for better flow
- Simplified working-with doc to focus on practical steps
- Rewrote troubleshooting with verified, actionable content

Admin docs:
- Renamed devcontainers/ to envbuilder/ to clarify it's an alternative
- Added notes recommending native Dev Containers integration
- Fixed module registry URLs (dev.registry -> registry.coder.com)
- Added Alternative section to envbuilder docs for symmetry

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update these docs but was closed due to
inaccuracies from limited implementation knowledge.

The SSH examples used the deprecated --container flag instead of the
agent-based pattern (coder ssh workspace.agent). Port forwarding
focused on appPort configuration when native forwarding directly to
sub-agents is the primary method. Prerequisites implied users needed
to "enable" Dev Containers when it's actually on by default—the real
requirements are just Docker and the devcontainers CLI.

The "automatic build" section implied containers start automatically,
but autostart is off by default. Discovery finds devcontainer.json
files and shows them in the UI; users click to start unless the admin
configured autostart.

Renamed the admin docs folder from devcontainers/ to envbuilder/ since
it documents Envbuilder specifically, not native Dev Containers. This
caused confusion about which approach was recommended. Added notes
pointing to native Dev Containers as the recommended approach for most
use cases, with Envbuilder as an alternative for Docker-less
environments.

Also fixes module registry URLs that pointed to dev.registry instead
of registry.coder.com.

The admin template configuration docs (extending-templates/devcontainers.md)
were recently rewritten and remain mostly unchanged beyond the registry
URL fix.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update these docs but was closed due to
inaccuracies from limited implementation knowledge.

The SSH examples used the deprecated --container flag instead of the
agent-based pattern (coder ssh workspace.agent). Port forwarding
focused on appPort configuration when native forwarding directly to
sub-agents is the primary method. Prerequisites implied users needed
to "enable" Dev Containers when it's actually on by default—the real
requirements are just Docker and the devcontainers CLI.

The "automatic build" section implied containers start automatically,
but autostart is off by default. Discovery finds devcontainer.json
files and shows them in the UI; users click to start unless the admin
configured autostart.

Renamed the admin docs folder from devcontainers/ to envbuilder/ since
it documents Envbuilder specifically, not native Dev Containers. This
caused confusion about which approach was recommended. Added notes
pointing to native Dev Containers as the recommended approach for most
use cases, with Envbuilder as an alternative for Docker-less
environments.

Also fixes module registry URLs that pointed to dev.registry instead
of registry.coder.com.

The admin template configuration docs (extending-templates/devcontainers.md)
were recently rewritten and remain mostly unchanged beyond the registry
URL fix.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update these docs but was closed due to
inaccuracies from limited implementation knowledge.

The SSH examples used the deprecated --container flag instead of the
agent-based pattern (coder ssh workspace.agent). Port forwarding
focused on appPort configuration when native forwarding directly to
sub-agents is the primary method. Prerequisites implied users needed
to "enable" Dev Containers when it's actually on by default—the real
requirements are just Docker and the devcontainers CLI.

The "automatic build" section implied containers start automatically,
but autostart is off by default. Discovery finds devcontainer.json
files and shows them in the UI; users click to start unless the admin
configured autostart.

Renamed the admin docs folder from devcontainers/ to envbuilder/ since
it documents Envbuilder specifically, not native Dev Containers. This
caused confusion about which approach was recommended. Added notes
pointing to native Dev Containers as the recommended approach for most
use cases, with Envbuilder as an alternative for Docker-less
environments.

Also fixes module registry URLs that pointed to dev.registry instead
of registry.coder.com.

The admin template configuration docs (extending-templates/devcontainers.md)
were recently rewritten and remain mostly unchanged beyond the registry
URL fix.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update these docs but was closed due to
inaccuracies from limited implementation knowledge.

The SSH examples used the deprecated --container flag instead of the
agent-based pattern (coder ssh workspace.agent). Port forwarding
focused on appPort configuration when native forwarding directly to
sub-agents is the primary method. Prerequisites implied users needed
to "enable" Dev Containers when it's actually on by default—the real
requirements are just Docker and the devcontainers CLI.

The "automatic build" section implied containers start automatically,
but autostart is off by default. Discovery finds devcontainer.json
files and shows them in the UI; users click to start unless the admin
configured autostart.

Renamed the admin docs folder from devcontainers/ to envbuilder/ since
it documents Envbuilder specifically, not native Dev Containers. This
caused confusion about which approach was recommended. Added notes
pointing to native Dev Containers as the recommended approach for most
use cases, with Envbuilder as an alternative for Docker-less
environments.

Also fixes module registry URLs that pointed to dev.registry instead
of registry.coder.com.

The admin template configuration docs (extending-templates/devcontainers.md)
were recently rewritten and remain mostly unchanged beyond the registry
URL fix.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update these docs but was closed due to
inaccuracies from limited implementation knowledge.

The SSH examples used the deprecated --container flag instead of the
agent-based pattern (coder ssh workspace.agent). Port forwarding
focused on appPort configuration when native forwarding directly to
sub-agents is the primary method. Prerequisites implied users needed
to "enable" Dev Containers when it's actually on by default—the real
requirements are just Docker and the devcontainers CLI.

The "automatic build" section implied containers start automatically,
but autostart is off by default. Discovery finds devcontainer.json
files and shows them in the UI; users click to start unless the admin
configured autostart.

Renamed the admin docs folder from devcontainers/ to envbuilder/ since
it documents Envbuilder specifically, not native Dev Containers. This
caused confusion about which approach was recommended. Added notes
pointing to native Dev Containers as the recommended approach for most
use cases, with Envbuilder as an alternative for Docker-less
environments.

Also fixes module registry URLs that pointed to dev.registry instead
of registry.coder.com.

The admin template configuration docs (extending-templates/devcontainers.md)
were recently rewritten and remain mostly unchanged beyond the registry
URL fix.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
PR #18907 attempted to update these docs but was closed due to
inaccuracies from limited implementation knowledge.

The SSH examples used the deprecated --container flag instead of the
agent-based pattern (coder ssh workspace.agent). Port forwarding
focused on appPort configuration when native forwarding directly to
sub-agents is the primary method. Prerequisites implied users needed
to "enable" Dev Containers when it's actually on by default—the real
requirements are just Docker and the devcontainers CLI.

The "automatic build" section implied containers start automatically,
but autostart is off by default. Discovery finds devcontainer.json
files and shows them in the UI; users click to start unless the admin
configured autostart.

Renamed the admin docs folder from devcontainers/ to envbuilder/ since
it documents Envbuilder specifically, not native Dev Containers. This
caused confusion about which approach was recommended. Added notes
pointing to native Dev Containers as the recommended approach for most
use cases, with Envbuilder as an alternative for Docker-less
environments.

Also fixes module registry URLs that pointed to dev.registry instead
of registry.coder.com.

The admin template configuration docs (extending-templates/devcontainers.md)
were recently rewritten and remain mostly unchanged beyond the registry
URL fix.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
… for GA

The previous documentation had inaccuracies: SSH examples used the
deprecated `--container` flag instead of the agent-based pattern
(`coder ssh workspace.agent`), port forwarding focused on `appPort` when
native forwarding to sub-agents is the primary method, and prerequisites
implied users needed to "enable" dev containers when it is on by default.

Renamed admin docs folder from `devcontainers/` to `envbuilder/` since it
documents Envbuilder specifically, not native dev containers. Added notes
pointing to native dev containers as the recommended approach for most
use cases.

Also fixes module registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
The previous documentation had inaccuracies: SSH examples used the
deprecated `--container` flag instead of the agent-based pattern
(`coder ssh workspace.agent`), port forwarding focused on `appPort` when
native forwarding to sub-agents is the primary method, and prerequisites
implied users needed to "enable" dev containers when it is on by default.

Renamed admin docs folder from `devcontainers/` to `envbuilder/` since it
documents Envbuilder specifically, not native dev containers. Added notes
pointing to native dev containers as the recommended approach for most
use cases.

Also fixes module registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 3, 2025
The previous documentation had inaccuracies: SSH examples used the
deprecated `--container` flag instead of the agent-based pattern
(`coder ssh workspace.agent`), port forwarding focused on `appPort` when
native forwarding to sub-agents is the primary method, and prerequisites
implied users needed to "enable" dev containers when it is on by default.

Renamed admin docs folder from `devcontainers/` to `envbuilder/` since it
documents Envbuilder specifically, not native dev containers. Added notes
pointing to native dev containers as the recommended approach for most
use cases.

Also fixes module registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 4, 2025
The previous documentation had inaccuracies: SSH examples used the
deprecated `--container` flag instead of the agent-based pattern
(`coder ssh workspace.agent`), port forwarding focused on `appPort` when
native forwarding to sub-agents is the primary method, and prerequisites
implied users needed to "enable" dev containers when it is on by default.

Renamed admin docs folder from `devcontainers/` to `envbuilder/` since it
documents Envbuilder specifically, not native dev containers. Added notes
pointing to native dev containers as the recommended approach for most
use cases.

Also fixes module registry URLs that pointed to dev.registry instead of
registry.coder.com.

Refs #18907
mafredri added a commit that referenced this pull request Dec 5, 2025
docs: rewrite dev containers documentation for GA

Corrects inaccuracies in SSH examples (deprecated `--container` flag),
port forwarding (native sub-agent forwarding is primary), and
prerequisites (dev containers are on by default). Fixes template
descriptions: docker-devcontainer uses native Dev Containers while
AWS/Kubernetes templates use Envbuilder.

Renames admin docs folder from `devcontainers/` to `envbuilder/` to
reflect actual content. Adds customization guide documenting agent
naming, display apps, custom apps, and variable interpolation. Documents
multi-repo workspace support and adds note about Terraform module
limitations with sub-agents. Fixes module registry URLs.

Refs #18907
kminhtri pushed a commit to kminhtri/coder that referenced this pull request Dec 15, 2025
docs: rewrite dev containers documentation for GA

Corrects inaccuracies in SSH examples (deprecated `--container` flag),
port forwarding (native sub-agent forwarding is primary), and
prerequisites (dev containers are on by default). Fixes template
descriptions: docker-devcontainer uses native Dev Containers while
AWS/Kubernetes templates use Envbuilder.

Renames admin docs folder from `devcontainers/` to `envbuilder/` to
reflect actual content. Adds customization guide documenting agent
naming, display apps, custom apps, and variable interpolation. Documents
multi-repo workspace support and adds note about Terraform module
limitations with sub-agents. Fixes module registry URLs.

Refs coder#18907
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Area: coder.com/docs stale This issue is like stale bread.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants