Skip to content

Fully Update Development to Dev Containers - #1389

Open
shmowen wants to merge 35 commits into
devfrom
1121-story-update-cd-to-fully-dockerterraform
Open

Fully Update Development to Dev Containers#1389
shmowen wants to merge 35 commits into
devfrom
1121-story-update-cd-to-fully-dockerterraform

Conversation

@shmowen

@shmowen shmowen commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Notes about this:

  • If you want to test and are curious, the /server/.env file is incorrect, so DM me for the new one.

Process for new hires will now be:

  • Clone the repo

  • Open VS Code

  • Download the 'Dev Containers' vscode extension

  • In the very top bar of vscode, run the command 'Dev Containers: Reopen in Container'

  • Profit

  • You must use the terminal within vscode, as it is captured within the docker container

    • If you do not wish to use this terminal, you may run docker exec -it all_devcontainer-client-1 zsh
    • Git still works outside of the container

Update:

  • Due to HMR (hot reload) being an open and active bug in CRA currently, this story will now include the Vite -> CRA changes (Vite fixes theses HMR challenges)

@shmowen shmowen linked an issue Mar 23, 2026 that may be closed by this pull request
11 tasks
@shmowen shmowen changed the title 1121 story update cd to fully dockerterraform Fully Update Development to Docker Compose Mar 23, 2026
@shmowen
shmowen marked this pull request as ready for review March 24, 2026 17:48
@shmowen
shmowen marked this pull request as draft March 24, 2026 17:48
@shmowen
shmowen marked this pull request as ready for review April 7, 2026 17:27
@shmowen shmowen changed the title Fully Update Development to Docker Compose Fully Update Development to Dev Containers Apr 14, 2026
@shmowen
shmowen marked this pull request as draft April 16, 2026 18:32
@shmowen
shmowen marked this pull request as ready for review April 18, 2026 17:01
@shmowen shmowen linked an issue Apr 18, 2026 that may be closed by this pull request
3 tasks
@shmowen
shmowen requested a review from JackyFTW May 18, 2026 18:48
Comment thread client/src/components/footer/mainFooter.js Fixed
Comment thread client/src/components/footer/mainFooter.js Fixed
Comment thread client/src/components/footer/mainFooter.js Fixed
Comment thread client/src/components/footer/mainFooter.js Fixed
Comment thread client/src/components/footer/mainFooter.js Fixed
Comment thread client/src/components/footer/mainFooter.js Fixed
Owen Luts added 2 commits August 17, 2026 15:03
- vite.config.mjs: use classic JSX runtime so .js components qualify as
  Fast Refresh boundaries (plugin-react's automatic runtime only treats
  .jsx/.tsx as boundaries, so every edit was forcing a full page reload)
- README: document the docker dev workflow, the VITE_ vs REACT_APP_ env
  var pitfall, and the DB_HOST/DB_PORT values needed for the docker network
- restore .github/workflows/node.js.yml (deleted with no replacement),
  fixing two latent bugs: a matrix var name typo that broke node-version
  selection, and cd steps not persisting across separate run: blocks so
  builds silently ran in the repo root instead of client/server
…ckerterraform' into 1121-story-update-cd-to-fully-dockerterraform
@@ -1,3 +1,14 @@
/* eslint-disable react/prop-types */
import React, { Component } from "react";
@@ -1,3 +1,14 @@
/* eslint-disable react/prop-types */
import React, { Component } from "react";
import { connect } from "react-redux";
/* eslint-disable react/prop-types */
import React, { Component } from "react";
import { connect } from "react-redux";
import { actions as appActions } from "../../reducers/lab1/AppReducer";
import React, { Component } from "react";
import { connect } from "react-redux";
import { actions as appActions } from "../../reducers/lab1/AppReducer";
import { actions as mainActions } from "../../reducers/MainReducer";
import { connect } from "react-redux";
import { actions as appActions } from "../../reducers/lab1/AppReducer";
import { actions as mainActions } from "../../reducers/MainReducer";
import { bindActionCreators } from "redux";
Comment on lines +7 to +11
import {
setTextColor,
setBackgroundColor,
onNextPageChangeTSize,
} from "./edit/editPage";
Owen Luts added 3 commits August 17, 2026 15:23
deploy.yml and staging-deploy.yml export ENV_URL/STAGING_ENV_URL
secrets before building the client, but a wrong-prefixed value
(leftover REACT_APP_ from before the Vite migration) would silently
leave VITE_SERVER_URL undefined and ship a client with no API URL.
Now the build exits with a clear error instead.
Both Dockerfiles COPY . ./ after installing deps. client/.dockerignore
didn't exclude .env, and server/.dockerignore didn't exist at all, so
building locally (the now-documented dev workflow) baked DB passwords,
OAuth secrets, and session keys into an image layer that outlives the
container. Verified with real .env files present in the build context
that neither image now contains .env or .git.
Nothing previously validated that client/Dockerfile, server/Dockerfile,
or .devcontainer/docker-compose.yml still build on PRs that touch them.
Runs docker compose build on the devcontainer stack; confirmed locally
this needs no .env/secrets to succeed. Build-only by design — it won't
catch runtime/env issues (e.g. the DB_HOST or VITE_SERVER_URL bugs
found earlier this branch), only Dockerfile/dependency breakage.
Comment on lines +20 to +24
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build devcontainer images
run: docker compose -f .devcontainer/docker-compose.yml build
- client/package-lock.json was missing the linux-x64-gnu optional
  rollup binary (npm/cli#4828 - lockfile only had darwin entries from
  being generated on macOS). This is what made the just-restored
  node.js.yml CI check fail immediately: `vite build` couldn't find
  @rollup/rollup-linux-x64-gnu on the Linux runner. Regenerated inside
  a node:20 (debian) container to match CI and confirmed `vite build`
  now succeeds there.
- server/package-lock.json was stale relative to server/package.json,
  which already declares octokit and simple-git as dependencies the
  lockfile never picked up. `npm ci` would fail on this outright.
  Verified `npm i` + eslint both work cleanly against the regenerated
  lockfile.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Task: Migration to VITE Story: Update CD to Fully Docker/Terraform

2 participants