GCTC-NTGC / gc-digital-talent

GC Digital Talent is the new recruitment platform for digital and tech jobs in the Government of Canada. // Talents numériques du GC est la nouvelle plateforme de recrutement pour les emplois numériques et technologiques au gouvernement du Canada.
https://talent.canada.ca
GNU Affero General Public License v3.0
22 stars 9 forks source link

Refactor Docker #2217

Closed gggrant closed 1 year ago

gggrant commented 2 years ago

Some loose thoughts as I think on this:

Prior Art

(Potentially useful when this is revived)

To Do

gggrant commented 2 years ago

@patcon to add description.

petertgiles commented 2 years ago

Result of planning session 2022-03-25:

Docker Manifesto

Goals

  1. An easy way for new hires/contributors to get a working state
  2. A reliable way for existing developers to reset their working state ~3. A reliable way for owners to deploy updates to production servers~ (not necessarily a problem with docker, deployment right now has nothing to do with docker)
  3. A useful platform for automation

Priority Requirements

  1. Must work on Windows, Mac, Linux
  2. Must work on Github Actions

Secondary Requirements

  1. Should conform to Docker best-practices
  2. Should require few or no other dependencies
  3. Good integration with VS Code

Nice-to-haves

  1. Support constrained environments like TBS Azure VMs, Codespaces, GitPod
  2. VS Code DevContainers
  3. Easy way for Windows developers to use WSL2
  4. One-click (or few-clicks) to check out and set up a branch for review.
  5. Support for debugging PHP and Typescript
  6. No build-time vertical setting changes - need single deployment artifact, but not a blocker since we can build multiple artifacts

Questions About Approach

patcon commented 2 years ago

@petertgiles in backlog refinement, others wanted to know if we could easily handle https://github.com/GCTC-NTGC/gc-digital-talent/issues/2327 -- seemed easy enough, so added it to todos above :)

patcon commented 2 years ago

minimal base image for ubuntu that may be helpful in future (but likely not): https://github.com/phusion/baseimage-docker (maybe helpful HN context)

patcon commented 2 years ago

hyperlink gifts from @petertgiles --

patcon commented 2 years ago

lazy share: https://doc.traefik.io/traefik/providers/docker/ (re: docker watch ⌚ )

brindasasi commented 2 years ago

check with Tristan when you start working on it @patcon

tristan-orourke commented 2 years ago

A way to handle live reloading within docker containers: https://betterprogramming.pub/live-reloading-with-docker-compose-for-efficient-development-356d50e91e39

petertgiles commented 2 years ago

A way to handle live reloading within docker containers

For sure, this is part of my motivation to combine our webpack builds.

mnigh commented 1 year ago

@petertgiles are we still looking to refactor docker?

tristan-orourke commented 1 year ago

No, this isn't something we're really thinking about anymore.