Packages

Devcontainer setup for Elixir projects — operate at DevCon 4

Current section

Files

Jump to
devcon4 priv templates devcontainer devcontainer.json.eex
Raw

priv/templates/devcontainer/devcontainer.json.eex

{
"name": "<%= @project_name %>",
"build": {
"dockerfile": "Dockerfile",
"args": {
"TZ": "${localEnv:TZ:<%= @timezone %>}",
"ZSH_IN_DOCKER_VERSION": "1.2.0"<%= for {key, val} <- @extra_build_args do %>,
"<%= key %>": "<%= val %>"<% end %>
}
},
"runArgs": [
"--security-opt", "seccomp=unconfined"<%= if @firewall do %>,
"--cap-add=NET_ADMIN",
"--cap-add=NET_RAW"<% end %>
],
"remoteUser": "developer",
"mounts": [
"source=<%= @volume_prefix %>-bashhistory-${devcontainerId},target=/commandhistory,type=volume"<%= for mount <- @extra_mounts do %>,
"<%= mount %>"<% end %>
],
"containerEnv": {
"POWERLEVEL9K_DISABLE_GITSTATUS": "true"<%= for {key, val} <- @extra_env do %>,
"<%= key %>": "<%= val %>"<% end %>
},
"customizations": {
"vscode": {
"extensions": [
"JakeBecker.elixir-ls"
]
}
},
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace",
"postCreateCommand": "mix deps.get"<%= if @firewall do %>,
"postStartCommand": "sudo /usr/local/bin/init-firewall.sh",
"waitFor": "postStartCommand"<% end %>
}