Spectrum: Provide docker image for easy development?

Created on 9 Apr 2018  路  16Comments  路  Source: withspectrum/spectrum

Hi, I think it would make much sense if this repository provided a Docker image with all the database/backend related stuff setup so that people that want to contribute can simply run the image and hook the local frontend to it.

What do you think?

Tech Debt

Most helpful comment

Assign me!

All 16 comments

Haha that's exactly what @fubhy just started tackling :laughing: The only reason it doesn't exist yet is because I don't know Docker.

Assign me!

Can't assign non-collaborators on GitHub :cry: It's yours!

I've started work on this in #2793

In case someone is interested in already giving this a shot. Checkout the PR branch locally and make sure that you don't have any of the ports from 3000 to 3010 or Redis or RethinkDB running locally.

make bootstrap
make start

Doesn't spin up the react related services yet (SSR and frontend). But the rest is there.

In order to then populate the rethinkdb service:

docker-compose run --rm migrations yarn db:migrate
docker-compose run --rm migrations yarn db:seed

That should give you a running stack locally. You should now be able to go to http:://localhost:3001/api/graphiql for instance.

/cc @mxstbr @brianlovin

Since we are going to use Docker to develop and deploy spectrum, how about spliting this large code base into small repositories, like:

withspectrum/api
withspectrum/web
withspectrum/chronos
...

each service can be built into a Docker image and in the main repository use docker-compose to compose these services.

The monorepo setup provides a lot of good dx, especially since we're building so many things that require changes on many servers (e.g. api + frontend + a worker) - having to create and collaborate across 3 repos + 3 pull requests would be a bit of a nightmare :)

Also, we not only want to use Docker, but also Yarn workspaces. Hence keeping it in one repository is vital.

@fubhy Is there a reference issue for the Yarn workspaces?

Not yet! Mind opening one?

Will do!

Hey guys, I know @fubhy is working on moving everything inside of a Docker image, meanwhile we wanted to play around with Spectrum locally and didn't want to install RethinkDB and Redis on our machines, so we wrote this super-simple Docker stack with a disproportionately detailed README: https://github.com/DelightfulStudio/spectrum-dev-stack 馃槂

Thought I'd share it here in case someone else finds it useful.

@agurtovoy Cool, I was actually playing around with exactly this idea!

@fubhy Would be great if you could elaborate a bit what's blocking specifically this? :) 馃憞

Doesn't spin up the react related services yet (SSR and frontend). But the rest is there.

Any further progress on this ?

Hi, although seems that someone already was working on this, I took initiative to solve it.
Hope is ok.

The #2793 is much more complete and maybe should be the place where continue.
Although this gives a simpler P.O.C. with two additional component: nginx and traefik.

For running the project under an alias such as spectrum.localhost

The PR #4846 includes:

  • A docker compose setup with traefik for local DNS aliasing and nginx proxy setup.
  • Some handy shortcut for run commands with docker under docker/bin
  • Some ENV variables that need to be set for HOST setting

You can try the branch out and if you have docker and make it should take you one command to run spectrum.localhost.

make up

Spectrum-localhost

You should also run migrations once is up with make migrate.

Hope this can help in future improvements.
Feedback is welcome.

Was this page helpful?
0 / 5 - 0 ratings