Switch to docker compose v2 (#25048)

This commit is contained in:
Nicolas Le Cam 2023-11-13 14:30:24 +01:00 committed by GitHub
parent bdb363bd28
commit 1ed5d87342
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 72 additions and 72 deletions

View File

@ -18,7 +18,7 @@ env:
DUMP_SERVER_NAME: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.dump.server.sql DUMP_SERVER_NAME: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.dump.server.sql
DUMP_SCRIPT_NAME: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.dump.script.sql DUMP_SCRIPT_NAME: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.dump.script.sql
MIGRATION_SCRIPT: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.mysql.up.sql MIGRATION_SCRIPT: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.mysql.up.sql
CLEANUP_SCRIPT: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.mysql.cleanup.sql CLEANUP_SCRIPT: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.mysql.cleanup.sql
PREPROCESS_SCRIPT: esr.common.mysql.preprocess.sql PREPROCESS_SCRIPT: esr.common.mysql.preprocess.sql
DIFF_NAME: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.diff DIFF_NAME: esr.${{ inputs.initial-version }}-${{ inputs.final-version }}.diff
jobs: jobs:
@ -31,10 +31,10 @@ jobs:
- name: Run docker compose - name: Run docker compose
run: | run: |
cd server/build cd server/build
docker-compose --no-ansi run --rm start_dependencies docker compose --no-ansi run --rm start_dependencies
cat ../tests/test-data.ldif | docker-compose --no-ansi exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'; cat ../tests/test-data.ldif | docker compose --no-ansi exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest';
docker-compose --no-ansi exec -T minio sh -c 'mkdir -p /data/mattermost-test'; docker compose --no-ansi exec -T minio sh -c 'mkdir -p /data/mattermost-test';
docker-compose --no-ansi ps docker compose --no-ansi ps
- name: Wait for docker compose - name: Wait for docker compose
run: | run: |
until docker network inspect ghactions_mm-test; do echo "Waiting for Docker Compose Network..."; sleep 1; done; until docker network inspect ghactions_mm-test; do echo "Waiting for Docker Compose Network..."; sleep 1; done;
@ -74,7 +74,7 @@ jobs:
# otherwise, the name of the container gets written to the console, which is weird # otherwise, the name of the container gets written to the console, which is weird
docker stop mmserver > /dev/null docker stop mmserver > /dev/null
- name: Cleanup DB - name: Cleanup DB
run : | run: |
cd server/scripts/esrupgrades cd server/scripts/esrupgrades
docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $CLEANUP_SCRIPT docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $CLEANUP_SCRIPT
- name: Dump upgraded database - name: Dump upgraded database
@ -102,10 +102,10 @@ jobs:
- name: Run docker compose - name: Run docker compose
run: | run: |
cd server/build cd server/build
docker-compose --no-ansi run --rm start_dependencies docker compose --no-ansi run --rm start_dependencies
cat ../tests/test-data.ldif | docker-compose --no-ansi exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'; cat ../tests/test-data.ldif | docker compose --no-ansi exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest';
docker-compose --no-ansi exec -T minio sh -c 'mkdir -p /data/mattermost-test'; docker compose --no-ansi exec -T minio sh -c 'mkdir -p /data/mattermost-test';
docker-compose --no-ansi ps docker compose --no-ansi ps
- name: Wait for docker compose - name: Wait for docker compose
run: | run: |
until docker network inspect ghactions_mm-test; do echo "Waiting for Docker Compose Network..."; sleep 1; done; until docker network inspect ghactions_mm-test; do echo "Waiting for Docker Compose Network..."; sleep 1; done;
@ -119,11 +119,11 @@ jobs:
cd server/scripts/esrupgrades cd server/scripts/esrupgrades
docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $PREPROCESS_SCRIPT docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $PREPROCESS_SCRIPT
- name: Run migration through script - name: Run migration through script
run : | run: |
cd server/scripts/esrupgrades cd server/scripts/esrupgrades
docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $MIGRATION_SCRIPT docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $MIGRATION_SCRIPT
- name: Cleanup DB - name: Cleanup DB
run : | run: |
cd server/scripts/esrupgrades cd server/scripts/esrupgrades
docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $CLEANUP_SCRIPT docker exec -i ghactions_mysql_1 mysql -AN $MYSQL_CONN_ARGS < $CLEANUP_SCRIPT
- name: Dump upgraded database - name: Dump upgraded database

View File

@ -2,24 +2,24 @@ name: Database Migration Test
on: on:
workflow_call: workflow_call:
jobs: jobs:
test: test:
name: MySQL -> Postgres Migration name: MySQL -> Postgres Migration
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
env: env:
COMPOSE_PROJECT_NAME: ghactions COMPOSE_PROJECT_NAME: ghactions
BUILD_IMAGE: mattermost/mattermost-build-server:20230904_golang-1.20.7 BUILD_IMAGE: mattermost/mattermost-build-server:20230904_golang-1.20.7
defaults: defaults:
run: run:
working-directory: server working-directory: server
steps: steps:
- name: Checkout mattermost project - name: Checkout mattermost project
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
- name: Run docker compose - name: Run docker compose
run: | run: |
cd build cd build
docker-compose --ansi never run --rm start_dependencies docker compose --ansi never run --rm start_dependencies
docker-compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test'; docker compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test';
docker-compose --ansi never ps docker compose --ansi never ps
- name: Generate test-data - name: Generate test-data
run: | run: |
docker run --net ${COMPOSE_PROJECT_NAME}_mm-test \ docker run --net ${COMPOSE_PROJECT_NAME}_mm-test \
@ -33,22 +33,22 @@ jobs:
make test-data make test-data
- name: Migrate the DB and compare - name: Migrate the DB and compare
run: | run: |
docker run --net ${COMPOSE_PROJECT_NAME}_mm-test \ docker run --net ${COMPOSE_PROJECT_NAME}_mm-test \
--ulimit nofile=8096:8096 \ --ulimit nofile=8096:8096 \
--env-file=build/dotenv/migration.env \ --env-file=build/dotenv/migration.env \
-v $(go env GOCACHE):/go/cache \ -v $(go env GOCACHE):/go/cache \
-e GOCACHE=/go/cache \ -e GOCACHE=/go/cache \
-v $PWD:/mattermost \ -v $PWD:/mattermost \
-w /mattermost \ -w /mattermost \
$BUILD_IMAGE \ $BUILD_IMAGE \
make test-migration make test-migration
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with: with:
name: Migration logs name: Migration logs
path: server/migration.log path: server/migration.log
retention-days: 7 retention-days: 7
- name: Stop docker compose - name: Stop docker compose
run: | run: |
cd build cd build
docker-compose --ansi never stop docker compose --ansi never stop

View File

@ -45,10 +45,10 @@ jobs:
- name: Run docker compose - name: Run docker compose
run: | run: |
cd server/build cd server/build
docker-compose --ansi never run --rm start_dependencies docker compose --ansi never run --rm start_dependencies
cat ../tests/test-data.ldif | docker-compose --ansi never exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'; cat ../tests/test-data.ldif | docker compose --ansi never exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest';
docker-compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test'; docker compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test';
docker-compose --ansi never ps docker compose --ansi never ps
- name: Run mmctl Tests - name: Run mmctl Tests
run: | run: |
if [[ ${{ github.ref_name }} == 'master' ]]; then if [[ ${{ github.ref_name }} == 'master' ]]; then
@ -70,7 +70,7 @@ jobs:
- name: Stop docker compose - name: Stop docker compose
run: | run: |
cd server/build cd server/build
docker-compose --ansi never stop docker compose --ansi never stop
- name: Archive logs - name: Archive logs
if: ${{ always() }} if: ${{ always() }}
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2

View File

@ -37,10 +37,10 @@ jobs:
- name: Run docker compose - name: Run docker compose
run: | run: |
cd server/build cd server/build
docker-compose --ansi never run --rm start_dependencies docker compose --ansi never run --rm start_dependencies
cat ../tests/test-data.ldif | docker-compose --ansi never exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'; cat ../tests/test-data.ldif | docker compose --ansi never exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest';
docker-compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test'; docker compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test';
docker-compose --ansi never ps docker compose --ansi never ps
- name: Run Tests - name: Run Tests
run: | run: |
if [[ ${{ github.ref_name }} == 'master' ]]; then if [[ ${{ github.ref_name }} == 'master' ]]; then
@ -62,7 +62,7 @@ jobs:
- name: Stop docker compose - name: Stop docker compose
run: | run: |
cd server/build cd server/build
docker-compose --ansi never stop docker compose --ansi never stop
- name: Archive logs - name: Archive logs
if: ${{ always() }} if: ${{ always() }}
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2

View File

@ -230,10 +230,10 @@ else ifeq ($(MM_NO_DOCKER),true)
else else
@echo Starting docker containers @echo Starting docker containers
docker-compose rm start_dependencies docker compose rm start_dependencies
$(GO) run ./build/docker-compose-generator/main.go $(ENABLED_DOCKER_SERVICES) | docker-compose -f docker-compose.makefile.yml -f /dev/stdin $(DOCKER_COMPOSE_OVERRIDE) run -T --rm start_dependencies $(GO) run ./build/docker-compose-generator/main.go $(ENABLED_DOCKER_SERVICES) | docker compose -f docker-compose.makefile.yml -f /dev/stdin $(DOCKER_COMPOSE_OVERRIDE) run -T --rm start_dependencies
ifneq (,$(findstring openldap,$(ENABLED_DOCKER_SERVICES))) ifneq (,$(findstring openldap,$(ENABLED_DOCKER_SERVICES)))
cat tests/${LDAP_DATA}-data.ldif | docker-compose -f docker-compose.makefile.yml $(DOCKER_COMPOSE_OVERRIDE) exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest || true'; cat tests/${LDAP_DATA}-data.ldif | docker compose -f docker-compose.makefile.yml $(DOCKER_COMPOSE_OVERRIDE) exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest || true';
endif endif
ifneq (,$(findstring mysql-read-replica,$(ENABLED_DOCKER_SERVICES))) ifneq (,$(findstring mysql-read-replica,$(ENABLED_DOCKER_SERVICES)))
./scripts/replica-mysql-config.sh ./scripts/replica-mysql-config.sh
@ -243,18 +243,18 @@ endif
update-docker: stop-docker ## Updates the docker containers for local development. update-docker: stop-docker ## Updates the docker containers for local development.
@echo Updating docker containers @echo Updating docker containers
$(GO) run ./build/docker-compose-generator/main.go $(ENABLED_DOCKER_SERVICES) | docker-compose -f docker-compose.makefile.yml -f /dev/stdin $(DOCKER_COMPOSE_OVERRIDE) up --no-start $(GO) run ./build/docker-compose-generator/main.go $(ENABLED_DOCKER_SERVICES) | docker compose -f docker-compose.makefile.yml -f /dev/stdin $(DOCKER_COMPOSE_OVERRIDE) up --no-start
run-haserver: run-haserver:
ifeq ($(BUILD_ENTERPRISE_READY),true) ifeq ($(BUILD_ENTERPRISE_READY),true)
@echo Starting mattermost in an HA topology '(3 node cluster)' @echo Starting mattermost in an HA topology '(3 node cluster)'
docker-compose -f docker-compose.yaml $(DOCKER_COMPOSE_OVERRIDE) up --remove-orphans haproxy docker compose -f docker-compose.yaml $(DOCKER_COMPOSE_OVERRIDE) up --remove-orphans haproxy
endif endif
stop-haserver: stop-haserver:
@echo Stopping docker containers for HA topology @echo Stopping docker containers for HA topology
docker-compose stop docker compose stop
stop-docker: ## Stops the docker containers for local development. stop-docker: ## Stops the docker containers for local development.
ifeq ($(MM_NO_DOCKER),true) ifeq ($(MM_NO_DOCKER),true)
@ -262,7 +262,7 @@ ifeq ($(MM_NO_DOCKER),true)
else else
@echo Stopping docker containers @echo Stopping docker containers
docker-compose stop docker compose stop
endif endif
clean-docker: ## Deletes the docker containers for local development. clean-docker: ## Deletes the docker containers for local development.
@ -271,8 +271,8 @@ ifeq ($(MM_NO_DOCKER),true)
else else
@echo Removing docker containers @echo Removing docker containers
docker-compose down -v docker compose down -v
docker-compose rm -v docker compose rm -v
endif endif
plugin-checker: plugin-checker:
@ -455,7 +455,7 @@ ifneq ($(IS_CI),true)
ifneq ($(MM_NO_DOCKER),true) ifneq ($(MM_NO_DOCKER),true)
ifneq ($(TEMP_DOCKER_SERVICES),) ifneq ($(TEMP_DOCKER_SERVICES),)
@echo Stopping temporary docker services @echo Stopping temporary docker services
docker-compose stop $(TEMP_DOCKER_SERVICES) docker compose stop $(TEMP_DOCKER_SERVICES)
endif endif
endif endif
endif endif
@ -470,7 +470,7 @@ ifneq ($(IS_CI),true)
ifneq ($(MM_NO_DOCKER),true) ifneq ($(MM_NO_DOCKER),true)
ifneq ($(TEMP_DOCKER_SERVICES),) ifneq ($(TEMP_DOCKER_SERVICES),)
@echo Stopping temporary docker services @echo Stopping temporary docker services
docker-compose stop $(TEMP_DOCKER_SERVICES) docker compose stop $(TEMP_DOCKER_SERVICES)
endif endif
endif endif
endif endif
@ -658,10 +658,10 @@ restart-server: | stop-server run-server ## Restarts the mattermost server to pi
restart-haserver: restart-haserver:
@echo Restarting mattermost in an HA topology @echo Restarting mattermost in an HA topology
docker-compose restart follower2 docker compose restart follower2
docker-compose restart follower docker compose restart follower
docker-compose restart leader docker compose restart leader
docker-compose restart haproxy docker compose restart haproxy
restart-client: | stop-client run-client ## Restarts the webapp. restart-client: | stop-client run-client ## Restarts the webapp.

View File

@ -14,14 +14,14 @@ USAGE
up() up()
{ {
docker-compose run --rm start_dependencies docker compose run --rm start_dependencies
docker-compose exec openldap bash -c 'echo -e "dn: ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: organizationalunit" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest' docker compose exec openldap bash -c 'echo -e "dn: ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: organizationalunit" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'
docker-compose exec openldap bash -c 'echo -e "dn: uid=test.one,ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: iNetOrgPerson\nsn: User\ncn: Test1\nmail: success+testone@simulator.amazonses.com" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest' docker compose exec openldap bash -c 'echo -e "dn: uid=test.one,ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: iNetOrgPerson\nsn: User\ncn: Test1\nmail: success+testone@simulator.amazonses.com" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'
docker-compose exec openldap bash -c 'ldappasswd -s Password1 -D "cn=admin,dc=mm,dc=test,dc=com" -x "uid=test.one,ou=testusers,dc=mm,dc=test,dc=com" -w mostest' docker compose exec openldap bash -c 'ldappasswd -s Password1 -D "cn=admin,dc=mm,dc=test,dc=com" -x "uid=test.one,ou=testusers,dc=mm,dc=test,dc=com" -w mostest'
docker-compose exec openldap bash -c 'echo -e "dn: uid=test.two,ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: iNetOrgPerson\nsn: User\ncn: Test2\nmail: success+testtwo@simulator.amazonses.com" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest' docker compose exec openldap bash -c 'echo -e "dn: uid=test.two,ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: iNetOrgPerson\nsn: User\ncn: Test2\nmail: success+testtwo@simulator.amazonses.com" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'
docker-compose exec openldap bash -c 'ldappasswd -s Password1 -D "cn=admin,dc=mm,dc=test,dc=com" -x "uid=test.two,ou=testusers,dc=mm,dc=test,dc=com" -w mostest' docker compose exec openldap bash -c 'ldappasswd -s Password1 -D "cn=admin,dc=mm,dc=test,dc=com" -x "uid=test.two,ou=testusers,dc=mm,dc=test,dc=com" -w mostest'
docker-compose exec openldap bash -c 'echo -e "dn: cn=tgroup,ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: groupOfUniqueNames\nuniqueMember: uid=test.one,ou=testusers,dc=mm,dc=test,dc=com" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest' docker compose exec openldap bash -c 'echo -e "dn: cn=tgroup,ou=testusers,dc=mm,dc=test,dc=com\nobjectclass: groupOfUniqueNames\nuniqueMember: uid=test.one,ou=testusers,dc=mm,dc=test,dc=com" | ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'
docker run -it -u root \ docker run -it -u root \
--privileged \ --privileged \
@ -37,7 +37,7 @@ up()
down() down()
{ {
docker-compose down docker compose down
} }
# process arguments # process arguments

View File

@ -9,7 +9,7 @@ done
priv_stmt='GRANT REPLICATION SLAVE ON *.* TO "mmuser"@"%" IDENTIFIED BY "mostest"; FLUSH PRIVILEGES;' priv_stmt='GRANT REPLICATION SLAVE ON *.* TO "mmuser"@"%" IDENTIFIED BY "mostest"; FLUSH PRIVILEGES;'
docker exec mattermost-mysql sh -c "mysql -u root -pmostest -e '$priv_stmt'" docker exec mattermost-mysql sh -c "mysql -u root -pmostest -e '$priv_stmt'"
until docker-compose -f docker-compose.makefile.yml exec mysql-read-replica sh -c 'mysql -u root -pmostest -e ";"' until docker compose -f docker-compose.makefile.yml exec mysql-read-replica sh -c 'mysql -u root -pmostest -e ";"'
do do
echo "Waiting for mysql-read-replica database connection..." echo "Waiting for mysql-read-replica database connection..."
sleep 4 sleep 4