Ghost/.devcontainer/devcontainer.json
Chris Raible c4baf28823
Simplified Dev Container setup to use a single compose file (#21649)
no issue

- The current devcontainer setup was built with the intention of using
it as the _primary_ way of running Ghost in Docker locally. As such, it
was designed to be extensible — there was a `base.compose.yml` file with
the default configuration, and multiple other `compose.yml` files that
could be added to extend the base setup to cover different use-cases.
- We've run into some problems with using the devcontainer for regular
day to day usage, so we're moving toward using a more conventional
`compose` based setup for more advanced configurations.
- We're going to keep the devcontainer around as it's still nice for a
quick and easy setup, but it no longer needs to support multiple
configurations — as such, we can simplify the setup to a single
`compose.yml` file to make it easier to reason about and troubleshoot if
anything goes wrong.
- This commit removes the `.devcontainer/.docker` directory, and many of
the files that were in it. The main `compose.yml` file and the
Dockerfile were moved to the root of `.devcontainer` which should make
the setup a bit easier to follow and modify as needed.
2024-11-18 14:15:11 -08:00

155 lines
5.3 KiB
JSON

{
"name": "Ghost Local DevContainer",
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/nils-geistmann/devcontainers-features/zsh:0": {
"plugins": "git yarn gh"
}
},
"dockerComposeFile": ["./compose.yml"],
"service": "ghost",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"shutdownAction": "stopCompose",
"onCreateCommand": ["node", "./.devcontainer/onCreateCommand.js"],
"updateContentCommand": ["git", "submodule", "update", "--init", "--recursive"],
"postCreateCommand": ["yarn", "knex-migrator", "init"],
"remoteEnv": {
"STRIPE_SECRET_KEY": "${localEnv:STRIPE_SECRET_KEY}",
"STRIPE_API_KEY": "${localEnv:STRIPE_SECRET_KEY}",
"STRIPE_PUBLISHABLE_KEY": "${localEnv:STRIPE_PUBLISHABLE_KEY}",
"STRIPE_ACCOUNT_ID": "${localEnv:STRIPE_ACCOUNT_ID}",
"MAILGUN_SMTP_USER": "${localEnv:MAILGUN_SMTP_USER}",
"MAILGUN_SMTP_PASS": "${localEnv:MAILGUN_SMTP_PASS}",
"MAILGUN_FROM_ADDRESS": "${localEnv:MAILGUN_FROM_ADDRESS}",
"MAILGUN_API_KEY": "${localEnv:MAILGUN_API_KEY}",
"MAILGUN_DOMAIN": "${localEnv:MAILGUN_DOMAIN}",
"GHOST_UPSTREAM": "${localEnv:GHOST_UPSTREAM}",
"GHOST_FORK_REMOTE_URL": "${localEnv:GHOST_FORK_REMOTE_URL}",
"GHOST_FORK_REMOTE_NAME": "${localEnv:GHOST_FORK_REMOTE_NAME}",
"GHOST_FORCE_SSH": "${localEnv:GHOST_FORCE_SSH}"
},
"forwardPorts": [2368,4200],
"portsAttributes": {
"80": {
"onAutoForward": "ignore"
},
"2368": {
"label": "Ghost"
},
"2369": {
"label": "Ghost (Test Server)",
"onAutoForward": "silent"
},
"2370": {
"label": "Ghost (Test Server)",
"onAutoForward": "silent"
},
"2371": {
"label": "Ghost (Test Server)",
"onAutoForward": "silent"
},
"2372": {
"label": "Ghost (Test Server)",
"onAutoForward": "silent"
},
"2373": {
"label": "Ghost (Test Server)",
"onAutoForward": "silent"
},
"4200": {
"label": "Admin",
"onAutoForward": "silent"
},
"4201": {
"label": "Admin Live Reload",
"onAutoForward": "silent"
},
"4175": {
"label": "Portal",
},
"4176": {
"label": "Portal (HTTPS)",
"protocol": "https"
},
"4177": {
"label": "Announcement Bar"
},
"4178": {
"label": "Search"
},
"4173": {
"label": "Lexical"
},
"41730": {
"label": "Lexical (HTTPS)",
"protocol": "https"
},
"6174": {
"label": "Signup Form",
"onAutoForward": "silent"
},
"7173": {
"label": "Comments"
},
"7174": {
"label": "Comments (HTTPS)",
"protocol": "https"
},
"9174": {
"label": "Prometheus Metrics Exporter",
"onAutoForward": "silent"
},
"5173": {
"onAutoForward": "silent"
},
"5368": {
"onAutoForward": "silent"
}
},
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.profiles.linux": { "zsh": { "path": "/bin/zsh" } }
},
"extensions": [
"ms-azuretools.vscode-docker"
]
}
},
"secrets": {
"STRIPE_SECRET_KEY": {
"description": "Your Stripe account's test secret API key",
"documentationUrl": "https://dashboard.stripe.com/test/apikeys"
},
"STRIPE_PUBLISHABLE_KEY": {
"description": "Your Stripe account's test publishable key",
"documentationUrl": "https://dashboard.stripe.com/test/apikeys"
},
"STRIPE_ACCOUNT_ID": {
"description": "Your Stripe Account ID",
"documentationUrl": "https://dashboard.stripe.com/settings/account"
},
"MAILGUN_SMTP_USER": {
"description": "Your Mailgun account's SMTP username, e.g. postmaster@sandbox1234567890.mailgun.org. You can find this in the Mailgun dashboard under Sending -> Domains -> Select your domain -> SMTP.",
"documentationUrl": "https://app.mailgun.com/mg/sending/domains"
},
"MAILGUN_SMTP_PASS": {
"description": "Your Mailgun account's SMTP password",
"documentationUrl": "https://app.mailgun.com/mg/sending/domains"
},
"MAILGUN_FROM_ADDRESS": {
"description": "The email address that will be used as the `from` address when sending emails via Mailgun",
"documentationUrl": "https://app.mailgun.com/mg/sending/domains"
},
"MAILGUN_API_KEY": {
"description": "Your Mailgun account's API key",
"documentationUrl": "https://app.mailgun.com/mg/sending/domains"
},
"MAILGUN_DOMAIN": {
"description": "Your Mailgun account's domain, e.g. sandbox1234567890.mailgun.org",
"documentationUrl": "https://app.mailgun.com/mg/sending/domains"
}
}
}