Skip to content

Changes to support splitting CI build into multiple containers. - #1889

Draft
ShixinWu16 wants to merge 14 commits into
ubccr:mainfrom
ShixinWu16:file_updates_for_refactoring_docker_files
Draft

Changes to support splitting CI build into multiple containers.#1889
ShixinWu16 wants to merge 14 commits into
ubccr:mainfrom
ShixinWu16:file_updates_for_refactoring_docker_files

Conversation

@ShixinWu16

@ShixinWu16 ShixinWu16 commented Jul 29, 2024

Copy link
Copy Markdown

Description

Changes to support XDMoD database on an external host

  • Additional documentation needed:
    • Note that when upgrading to this version, after installation, but before running xdmod-upgrade, they need to run xdmod-setup and go through the database setup section.

Added a check for if the user was created

  • classes/CCR/DB/MySQLHelper.php
  • classes/OpenXdmod/Shared/DatabaseHelper.php

Added a question to get XDMoD host

  • classes/CCR/DB/MySQLHelper.php
  • classes/OpenXdmod/Setup/DatabaseSetup.php

Changed from using bootstrap to entrypoint (in create docker images repo)

  • tests/ci/bootstrap.sh

#### Updated collation from utf8_general_ci to utf8_unicode_ci

  • configuration/etl/etl_tables.d/*
  • tests/artifacts/xdmod/etlv2/configuration/input/*
  • tests/artifacts/xdmod/etlv2/configuration/output/*
  • tests/unit/lib/ETL/DbModel/*
    Update ryanrath: The above changes were merged in a different PR and as such have been removed from this PR

Motivation and Context

We wanted to split up the docker containers so that each module has their own container.
This would allow us to share our docker images without having to share everything.

Tests performed

Ran all automated tests, changed tests to match new collation sets

Checklist:

  • [ X ] The pull request description is suitable for a Changelog entry
  • [ X ] The milestone is set correctly on the pull request
  • [ X ] The appropriate labels have been added to the pull request

@ryanrath ryanrath added this to the 11.5.0 milestone Jul 29, 2024
@ryanrath ryanrath added Category:Infrastructure Internal infrastructure updates/changes enhancement Enhancement of the functionality of an existing feature maintenance / code quality Improvements and code cleanup. Not a new feature or enhancement to existing functionality. labels Jul 29, 2024
@ShixinWu16
ShixinWu16 force-pushed the file_updates_for_refactoring_docker_files branch from 6ee958a to 16e723d Compare July 29, 2024 15:03
@jpwhite4 jpwhite4 changed the title Dockerfile refactoring changes Changes to support splitting CI build into multiple containers. Oct 28, 2025
@jpwhite4
jpwhite4 marked this pull request as draft October 28, 2025 14:42
@ryanrath
ryanrath force-pushed the file_updates_for_refactoring_docker_files branch 2 times, most recently from 5b5487a to cda8844 Compare October 30, 2025 18:57
@jpwhite4 jpwhite4 modified the milestones: 11.5.0, 12.0.0 Nov 4, 2025
ShixinWu16 and others added 6 commits July 14, 2026 10:58
-
tests/artifacts/xdmod/etlv2/configuration/output/normalized_table_definition.json:
  - Updated to use the new docker network name.
- tests/ci/bootstrap.sh
  - removed the database related setup.
- tests/ci/scripts/xdmod-setup-start.tcl:
  - Updated to use the new docker network naeme.
- tests/playwright/Docker/docker-compose.yml
  - Added the `mariadb` container
  - Added a new `05-skipcache.cnf` file that disables the feature that
    makes mariadb use ip addresses vs. dns names as our code assumes
    that our db users are `username@hostname`.
  - Added a modified version of `/root/bin/services` that does not have
    the db related commands in it. Of note, the order of the services
    stopping / starting is intentional. If httpd is the first thing
    stopped / started an error occurred on start about port 80 still
    being in use thus causing restarts to fail.
  - Added a `my.cnf` file that is mapped into the xdmod container as
    `/root/.my.cnf` since we run a few raw `mysql` commands assuming we
    are connecting to localhost.
@ryanrath
ryanrath force-pushed the file_updates_for_refactoring_docker_files branch from f4a3a50 to fe91b31 Compare July 14, 2026 15:11
ryanrath and others added 8 commits July 15, 2026 13:46
This commit adds the ability to run / test the upgrade path using the
newly seperated docker compose setup ( having a seperate db container as
opposed to having it installed in the xdmod container ).

Since the upgrade path assumes that we have a populated db I've added
an export of the db from the built 11.0.3 docker image that is imported
on startup of the mariadb container. I'm not completely wedded to doing
things this way, but it was easy to implement and fulfills the need. We
could also do some pre-processing steps of:
- export the dbs from the xdmod container
- import these dbs into the mariadb container
- ...
- profit?

This would obviously save us the space, but could add more time to the
build. I'll do some testing and update the eventual PR with the results.
- Got rid of having a docker-compose file for both fresh_install && upgrade and
consolidated it to one docker-compose file.
- Some minor changes to the xdmod Dockerfile to clean up and remove unneeded
files / steps
- Some minor changes to `.circleci/config.yml` to ensure that we're not using
the on image DB anymore.
- Updates to `tests/ci/bootstrap.sh` that ensure we start with an empty db when
we're doing a fresh_install.
@jpwhite4

Copy link
Copy Markdown
Member

As per our conversation: Since the mysql gzip files are output artifacts from the build we should not add them to the source repository. The plan wil be to modify the docker image creation script that is in ccr-private so that it generates two images (1) the image that contains the current release of XDMoD with webserver, php, but not the database and (2) the image that contains the database.

This pull request will then be modified to use these two images in the CI build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Category:Infrastructure Internal infrastructure updates/changes enhancement Enhancement of the functionality of an existing feature maintenance / code quality Improvements and code cleanup. Not a new feature or enhancement to existing functionality.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants