diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 094eca7ad..d86ea604b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,7 +1,8 @@ { "name": "E621ng project development", - "dockerComposeFile": "../docker-compose.yml", - "service": "e621", + "dockerComposeFile": ["../docker-compose.yml", "docker-compose.extend.yml"], + "service": "dev-container", + "overrideCommand": true, "workspaceFolder": "/app", "features": { "ghcr.io/devcontainers/features/common-utils:2": {} diff --git a/.devcontainer/docker-compose.extend.yml b/.devcontainer/docker-compose.extend.yml new file mode 100644 index 000000000..71d6a0a1a --- /dev/null +++ b/.devcontainer/docker-compose.extend.yml @@ -0,0 +1,42 @@ +version: "3" + +services: + # Dev Container extension doesn't support `depends_on: !reset []` + # https://github.com/microsoft/vscode-remote-release/issues/8734 + dev-container: + image: e621 + environment: + RAILS_ENV: development + volumes: + - .:/app + - ./docker/danbooru_local_config.rb:/app/config/danbooru_local_config.rb + - node_modules:/app/node_modules + + # Don't start any other services + e621: + profiles: + - dev-container + autocompleted: + profiles: + - dev-container + nginx: + profiles: + - dev-container + postgres: + profiles: + - dev-container + redis: + profiles: + - dev-container + memcached: + profiles: + - dev-container + opensearch: + profiles: + - dev-container + iqdb: + profiles: + - dev-container + discord_joiner: + profiles: + - dev-container diff --git a/README.md b/README.md index f5b2c6b21..fd0bc9d68 100644 --- a/README.md +++ b/README.md @@ -45,9 +45,9 @@ You're most likely using Windows. Give this a shot, it tells Git to stop trackin #### Things to aid you during development -`bin/rails tests` to execute the test suite. +`docker compose run --rm tests` to execute the test suite. -`bundle exec rubocop` to run the linter. +`docker compose run --rm rubocop` to run the linter. The postgres server accepts outside connections which you can use to access it with a local client. Use `localhost:34517` to connect to a database named `e621_development` with the user `e621`. Leave the password blank, anything will work.