Fully Update Development to Dev Containers - #1389
Open
shmowen wants to merge 35 commits into
Open
Conversation
11 tasks
shmowen
marked this pull request as ready for review
March 24, 2026 17:48
shmowen
marked this pull request as draft
March 24, 2026 17:48
shmowen
marked this pull request as ready for review
April 7, 2026 17:27
added 15 commits
April 9, 2026 11:18
shmowen
marked this pull request as draft
April 16, 2026 18:32
added 2 commits
April 18, 2026 12:31
added 2 commits
April 18, 2026 12:54
shmowen
marked this pull request as ready for review
April 18, 2026 17:01
3 tasks
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"; |
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Notes about this:
/server/.envfile 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
docker exec -it all_devcontainer-client-1 zshUpdate: