committed by
GitHub
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