Skip to content

Factor out all deps except Docker #999

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 tasks
chadwhitacre opened this issue Jun 21, 2021 · 3 comments
Open
2 tasks

Factor out all deps except Docker #999

chadwhitacre opened this issue Jun 21, 2021 · 3 comments

Comments

@chadwhitacre
Copy link
Member

chadwhitacre commented Jun 21, 2021

We use Docker to run Sentry in a platform-neutral way, but the installation script depends on non-Docker tools such as bash, awk, sed, etc., which leads to portability bugs such as #941. There we have a suggestion to remove all non-Docker dependencies from the installation flow. Seems like a worthy goal to me.

Todo

  • audit for non-Docker deps
  • ???
@github-actions
Copy link

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@Daniel15
Copy link

Daniel15 commented Jun 23, 2022

One potential approach that I don't think would be too much work is to have a small install kickstart script that just checks for Docker (just a basic check that docker --version works or something like that) then runs a Docker container that runs the actual installation script. You could just mount the current directory as a bind mount in the installation container.

Once that's done, you could probably allow installation on Docker on Windows by having a batch or PowerShell kickstart script that does the same thing (checks for Docker then runs the installation container). There's definitely value to running the installation itself in a container even with the current installation scripts :)

@emmatyping
Copy link
Contributor

Things we do on the host that should(?) be moved into a container:

  • docker compose run (?)
  • docker compose build (?)
  • docker compose pull (?)
  • docker compose stop (?) (used for cleanup)
  • docker run/docker pull (?) for various one off containers or actions (e.g. curl)
  • git version check
  • sort/sed/etc for version checking
  • volume creation?
  • docker info for platform checks
  • jq related to relay credentials
  • head/tr for setting the secret for sentry config
  • diff for checking geoip's database
  • grep for extracting data
  • cp to move files
  • probably a couple of other things I've missed

Various important things we do to consider the installer has to do:

  • set up kafka, tsdb, geoip, zookeeper, clickhouse
  • build images
  • set up snuba
  • make volumes
  • update images
  • check the install worked correctly

I'm going to keep thinking about the best way to factor out all the dependencies to just require a container runtime e.g. docker or podman.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

4 participants