Skip to content

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.yml

Move 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.20250312

Edit 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 NAME

Bring 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.6s

Ensure 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-1

Check 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)