Dockerfile clean up + comments entry.sh more env vars Fix env* rbs Comment out SSL for now in nginx Doc updates
2.5 KiB
Development
Install instructions in INSTALL.md
Startup
Just run and open http://localhost:4000/
docker-compose up`
Tips
-
Everything should be running on containers.
-
If you need to run stuff on your host (eg. ruby, rubocop, bundle install etc) run all commands from the:
Dockerfile.dev
. It should setup identical setup for your machine. -
Add docker container names to /etc/hosts. This makes it possible to run test from local machine without using the container since editor/IDE don't integrate with Docker so well.
sudo echo
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ensl_dev_db
db >> /etc/hosts -
VS Code and RubyMine are great IDE's/editors.
-
To run VS Code plugin Ruby Test Explorer in docker container you need to create path to custom path, copy the formatter and it whines about and it still fails a bit. https://github.com/connorshea/vscode-ruby-test-adapter/issues/21
-
Do not commit too much without testing. Also keep commits small for documentation and reversability issues.
-
You need to rebuild the docker image when you change gems.
TODO issues for dev
- Puma should be running (eg. spring), and if debugger is used it should be able to connect via docker-compose up
- Should directories exist?
Tags in code
FIXME, TODO, EXPLAIN, OBSOLETE
Handy commands
Load env variables:
source script/env.sh .env .env.development
Start:
docker-compose up -d --build`
Build or rebuild:
docker-compose build`
Debug:
docker attach ensl_dev
To get inside docker web+test containers:
docker-compose exec -u root web /bin/bash`
docker-compose exec -u web web /bin/bash`
docker-compose exec -u root test /bin/bash`
docker-compose exec -u web test /bin/bash`
Restart the web container
docker-compose restart web`
Run some tests:
docker-compose exec -u web test bundle exec rspec`
docker-compose exec -u web test bundle exec rspec spec/controllers/shoutmsgs_controller_spec.rb`
Design of ENSL Application
Read this to understand design decisions and follow them!
- Env variables should be used everywhere and loaded from .env* files using Dotenv
- The app contents are added to the docker image on build but it is mounted as volume.
- Use rails / ruby best practices in section below.