forked from berserker/microblog
Add DevContainer config (#17764)
* Add DevContainer config * Add `--path vendor/bundle` to `postCreateCommand`main
parent
71e7d38421
commit
74f406cfc9
3 changed files with 134 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||||||
|
# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster |
||||||
|
ARG VARIANT=3.1-bullseye |
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT} |
||||||
|
|
||||||
|
# Install Rails |
||||||
|
# RUN gem install rails webdrivers |
||||||
|
|
||||||
|
# Default value to allow debug server to serve content over GitHub Codespace's port forwarding service |
||||||
|
# The value is a comma-separated list of allowed domains |
||||||
|
ENV RAILS_DEVELOPMENT_HOSTS=".githubpreview.dev" |
||||||
|
|
||||||
|
# [Choice] Node.js version: lts/*, 16, 14, 12, 10 |
||||||
|
ARG NODE_VERSION="lts/*" |
||||||
|
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1" |
||||||
|
|
||||||
|
# [Optional] Uncomment this section to install additional OS packages. |
||||||
|
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ |
||||||
|
&& apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libpam-dev |
||||||
|
|
||||||
|
# [Optional] Uncomment this line to install additional gems. |
||||||
|
RUN gem install foreman |
||||||
|
|
||||||
|
# [Optional] Uncomment this line to install global node packages. |
||||||
|
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g yarn" 2>&1 |
@ -0,0 +1,26 @@ |
|||||||
|
{ |
||||||
|
"name": "Mastodon", |
||||||
|
"dockerComposeFile": "docker-compose.yml", |
||||||
|
"service": "app", |
||||||
|
"workspaceFolder": "/workspaces/mastodon", |
||||||
|
|
||||||
|
// Set *default* container specific settings.json values on container create. |
||||||
|
"settings": {}, |
||||||
|
|
||||||
|
// Add the IDs of extensions you want installed when the container is created. |
||||||
|
"extensions": [ |
||||||
|
"EditorConfig.EditorConfig", |
||||||
|
"dbaeumer.vscode-eslint", |
||||||
|
"rebornix.Ruby" |
||||||
|
], |
||||||
|
|
||||||
|
// Use 'forwardPorts' to make a list of ports inside the container available locally. |
||||||
|
// This can be used to network with other containers or the host. |
||||||
|
"forwardPorts": [3000, 4000], |
||||||
|
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created. |
||||||
|
"postCreateCommand": "bundle install --path vendor/bundle && yarn install && ./bin/rails db:setup", |
||||||
|
|
||||||
|
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. |
||||||
|
"remoteUser": "vscode" |
||||||
|
} |
@ -0,0 +1,84 @@ |
|||||||
|
version: '3' |
||||||
|
|
||||||
|
services: |
||||||
|
app: |
||||||
|
build: |
||||||
|
context: . |
||||||
|
dockerfile: Dockerfile |
||||||
|
args: |
||||||
|
# Update 'VARIANT' to pick a version of Ruby: 3, 3.1, 3.0, 2, 2.7, 2.6 |
||||||
|
# Append -bullseye or -buster to pin to an OS version. |
||||||
|
# Use -bullseye variants on local arm64/Apple Silicon. |
||||||
|
VARIANT: "3.0-bullseye" |
||||||
|
# Optional Node.js version to install |
||||||
|
NODE_VERSION: "14" |
||||||
|
volumes: |
||||||
|
- ..:/workspaces/mastodon:cached |
||||||
|
environment: |
||||||
|
RAILS_ENV: development |
||||||
|
NODE_ENV: development |
||||||
|
|
||||||
|
REDIS_HOST: redis |
||||||
|
REDIS_PORT: '6379' |
||||||
|
DB_HOST: db |
||||||
|
DB_USER: postgres |
||||||
|
DB_PASS: postgres |
||||||
|
DB_PORT: '5432' |
||||||
|
ES_ENABLED: 'true' |
||||||
|
ES_HOST: es |
||||||
|
ES_PORT: '9200' |
||||||
|
# Overrides default command so things don't shut down after the process ends. |
||||||
|
command: sleep infinity |
||||||
|
networks: |
||||||
|
- external_network |
||||||
|
- internal_network |
||||||
|
user: vscode |
||||||
|
|
||||||
|
|
||||||
|
db: |
||||||
|
image: postgres:14-alpine |
||||||
|
restart: unless-stopped |
||||||
|
volumes: |
||||||
|
- postgres-data:/var/lib/postgresql/data |
||||||
|
environment: |
||||||
|
POSTGRES_USER: postgres |
||||||
|
POSTGRES_DB: postgres |
||||||
|
POSTGRES_PASSWORD: postgres |
||||||
|
POSTGRES_HOST_AUTH_METHOD: trust |
||||||
|
networks: |
||||||
|
- internal_network |
||||||
|
|
||||||
|
redis: |
||||||
|
image: redis:6-alpine |
||||||
|
restart: unless-stopped |
||||||
|
volumes: |
||||||
|
- redis-data:/data |
||||||
|
networks: |
||||||
|
- internal_network |
||||||
|
|
||||||
|
es: |
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2 |
||||||
|
restart: unless-stopped |
||||||
|
environment: |
||||||
|
ES_JAVA_OPTS: -Xms512m -Xmx512m |
||||||
|
cluster.name: es-mastodon |
||||||
|
discovery.type: single-node |
||||||
|
bootstrap.memory_lock: 'true' |
||||||
|
volumes: |
||||||
|
- es-data:/usr/share/elasticsearch/data |
||||||
|
networks: |
||||||
|
- internal_network |
||||||
|
ulimits: |
||||||
|
memlock: |
||||||
|
soft: -1 |
||||||
|
hard: -1 |
||||||
|
|
||||||
|
volumes: |
||||||
|
postgres-data: |
||||||
|
redis-data: |
||||||
|
es-data: |
||||||
|
|
||||||
|
networks: |
||||||
|
external_network: |
||||||
|
internal_network: |
||||||
|
internal: true |
Loading…
Reference in new issue