Software Update Procedure
The following chapters describe the generic update procedure for the Broadworks Gateway when deployed in a Docker environment. Be sure to refer to the specific version release notes for any additional instructions or requirements related to that version.
In order to find the configuration file of the docker containers, run the docker ps command and
docker inspect <docker container name> | grep "com.docker.compose.project.config_files"It will give us the location of the docker-compose file, which in our case is :
com.docker.compose.project.config_files": "/opt/apio_core/docker-compose.ymlMove to the /opt/apio_core directory and make a backup of the docker-compose.yml file.
[root@core-app-1 apio_core]# cd /opt/apio_core/
[root@core-app-1 apio_core]# cp docker-compose.yml docker-compose.yml.bak.20250312Edit the docker-compose.yml file and update the tag version of the image.
...
bwgw:
image: docker.bxl.netaxis.be/apio_bsft/bsft_gw:1.11.3
restart: always
ports:
- 8443:443
volumes:
- /var/log/apio_gtw:/var/log/apio
...Stop the running containers and remove the associated volumes.
[root@core-app-1 apio_core]# docker compose down -v
[+] Running 6/6
✔ Container apio_core-bwgw-1 Removed 17.4s
...WARNING
It is important to use the -v argument to remove the static-files volume so that when the new application version is started, the static-files volume is created with the GUI files of the new version. No volumes should be left when running this command:
[root@core-app-1 apio_core]# docker volume ls
DRIVER VOLUME NAMEBring up the new services based on the updated docker-compose.yml configuration by running the following command:
[root@core-app-1 apio_core]# docker compose up -d
[+] Running 19/19
...
✔ bwgw pulled
✔ 0d653a9bda6a Already exists 0.0s
✔ 21eb2f74e859 Already exists 0.0s
✔ 2e61b3be9aca Already exists 0.0s
✔ 9a2c563c66ec Already exists 0.0s
✔ a99374cf3dd8 Already exists 0.1s
✔ b645e94f5918 Pull complete 1.8s
✔ 02fad27dff8a Pull complete 2.2s
✔ 2a9993a332bd Pull complete 2.5s
✔ ce3c51fc0ba5 Pull complete 2.7s
✔ 58d4766f3683 Pull complete 2.9s
✔ 1a4097e04364 Pull complete 3.1s
✔ 75363e85e348 Pull complete 3.3s
✔ cc80d623387d Pull complete 3.4s
✔ de1a0ece0937 Pull complete 3.5s
✔ 6f3c096c47ec Pull complete 3.5s
✔ 028c9e96465a Pull complete 3.6s
[+] Running 6/6
✔ Network apio_core_default Created 0.1s
...
✔ Container apio_core-bwgw-1 Started 3.6sEnsure that all the services are up and stable by checking the status of the containers.
[root@core-app-1 apio_core]# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
a23fafccbd55 docker.bxl.netaxis.be/apio_bsft/bsft_gw:1.11.3 "/docker/entrypoint.…" 12 days ago Up 45 hours 0.0.0.0:8443->443/tcp, [::]:8443->443/tcp apio-bwgw-1Check the gateway logs for the startup sequence. Look for entries related to the initialization process, including any database migration steps. If this version includes a database migration, the logs will detail the migration process and its individual steps. These logs will provide useful information on the success or failure of the migration and help identify any issues during the upgrade process.
You may also refer to the chapter of health checks detailed here.
bwgw-1 | WARNING:root:>>> Performing initialization tasks
bwgw-1 | WARNING:root:Generating YAML template vars from environment variables: jinja -X 'BWGW.*' -o /docker/template_vars.yaml /docker/template_vars.yaml.tmpl
bwgw-1 | WARNING:root:Generating Django settings file: jinja -f yaml -d /docker/template_vars.yaml -o /opt/apio-gateway_frontend/apio-gateway/apio_gateway_frontend/settings/apio_gateway-default.py /opt/apio-gateway_frontend/apio-gateway/apio_gateway_frontend/settings/apio_gateway_template.py
bwgw-1 | WARNING:root:Generating PROQ settings file: jinja -f yaml -d /docker/template_vars.yaml -o /opt/apio-gateway_frontend/apio-gateway/apio_gateway_frontend/proq/proq-default.cfg /opt/apio-gateway_frontend/apio-gateway/apio_gateway_frontend/proq/proq_template.cfg
bwgw-1 | WARNING:root:Generating cleanup audit script: jinja -f yaml -d /docker/template_vars.yaml -o /opt/apio-gw-core/ops/scripts/clean_audit_default.sh /opt/apio-gw-core/ops/scripts/template_clean_audit_project.sh
bwgw-1 | WARNING:root:Running chmod +x /opt/apio-gw-core/ops/scripts/clean_audit_default.sh
bwgw-1 | WARNING:root:Generating cleanup Django sessions script: jinja -f yaml -d /docker/template_vars.yaml -D apio_name apio-gateway -o /opt/apio-gw-core/ops/scripts/clean_django_sessions_default.sh /opt/apio-gw-core/ops/scripts/template_clean_django_sessions_project.sh
bwgw-1 | WARNING:root:Running chmod +x /opt/apio-gw-core/ops/scripts/clean_django_sessions_default.sh
bwgw-1 | WARNING:root:Generating Caddy configuration file: jinja -f yaml -d /docker/template_vars.yaml -o /etc/caddy/Caddyfile /docker/Caddyfile.tmpl
bwgw-1 | WARNING:root:Generating Supervisord configuration file: jinja -f yaml -d /docker/template_vars.yaml -o /etc/supervisord.d/supervisord-programs.ini /docker/supervisord-programs.ini.tmpl
bwgw-1 | WARNING:root:Generating update Django DB script: jinja -f yaml -d /docker/template_vars.yaml -D apio_name apio-gateway -o /opt/apio-gw-core/ops/scripts/update_django_db_default.sh /opt/apio-gw-core/ops/scripts/template_update_django_db_project.sh
bwgw-1 | WARNING:root:Running sh /opt/apio-gw-core/ops/scripts/update_django_db_default.sh
bwgw-1 | Upgrading DB structure (if needed)
bwgw-1 | Operations to perform:
bwgw-1 | Apply all migrations: admin, auth, authentication, authtoken, contenttypes, services, sessions, sites
bwgw-1 | Running migrations:
bwgw-1 | No migrations to apply.
bwgw-1 | Your models in app(s): 'authentication', 'services' have changes that are not yet reflected in a migration, and so won't be applied.
bwgw-1 | Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
bwgw-1 | WARNING:root:>>> Ready to launch all process via Supervisord
bwgw-1 | WARNING:root:Running supervisord -n -c /etc/supervisord.conf
bwgw-1 | 2025-05-09 11:05:16,947 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
bwgw-1 | 2025-05-09 11:05:16,947 INFO Included extra file "/etc/supervisord.d/supervisord-programs.ini" during parsing
bwgw-1 | 2025-05-09 11:05:17,252 INFO RPC interface 'supervisor' initialized
bwgw-1 | 2025-05-09 11:05:17,252 CRIT Server 'unix_http_server' running without any HTTP authentication checking
bwgw-1 | 2025-05-09 11:05:17,252 INFO supervisord started with pid 26
bwgw-1 | 2025-05-09 11:05:18,255 INFO spawned: 'apio_gtw-0' with pid 29
bwgw-1 | 2025-05-09 11:05:18,256 INFO spawned: 'caddy' with pid 30
bwgw-1 | 2025-05-09 11:05:19,283 INFO success: apio_gtw-0 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
bwgw-1 | 2025-05-09 11:05:19,283 INFO success: caddy entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)