Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,4 @@ clean:
$(call COMPOSE_DOWN,-v)

get-token:
DEV=$(DEV) \
ARCH=$(ARCH) \
cd ./compose-builder; sh get-api-gateway-token.sh
55 changes: 8 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
## Edgex Docker Compose
[![Build Status](https://jenkins.edgexfoundry.org/view/EdgeX%20Foundry%20Project/job/edgexfoundry/job/edgex-compose/job/main/badge/icon)](https://jenkins.edgexfoundry.org/view/EdgeX%20Foundry%20Project/job/edgexfoundry/job/edgex-compose/job/main/) [![GitHub License](https://img.shields.io/github/license/edgexfoundry/edgex-compose)](https://choosealicense.com/licenses/apache-2.0/) [![GitHub Pull Requests](https://img.shields.io/github/issues-pr-raw/edgexfoundry/edgex-compose)](https://github.com/edgexfoundry/edgex-compose/pulls) [![GitHub Contributors](https://img.shields.io/github/contributors/edgexfoundry/edgex-compose)](https://github.com/edgexfoundry/edgex-compose/contributors) [![GitHub Committers](https://img.shields.io/badge/team-committers-green)](https://github.com/orgs/edgexfoundry/teams/edgex-compose-committers/members) [![GitHub Commit Activity](https://img.shields.io/github/commit-activity/m/edgexfoundry/edgex-compose)](https://github.com/edgexfoundry/edgex-compose/commits)


This repository contains the docker compose files for EdgeX releases.
This branch contains the docker compose files that pull and run the `pre-release` images.

> **Note:** Each release is now on it's own branch named after the release codename. You can view all branches [here](https://github.com/edgexfoundry/edgex-compose/branches/all).
This `branch` contains the `pre-release` docker compose files that pull and run the EdgeX images from the Nexus3 docker registry that are tagged with `master`. These images are built from the Edgex CI Pipeline when PRs are merged into the `master` branch.

> **Note**: Docker does not re-pull newer instances of these images. You must pull the new image instances. See the `make pull` command described below that will do this for you.
These `pre-release` docker compose files are generated from the multiple source compose files located in the `compose-builder` folder. See [README](compose-builder/README.md) there for details on regenerating these files after making changes to the source files.


These compose files are auto generated from the multiple files contained in the `compose-builder` folder.
See Compose Builder [README](https://github.com/edgexfoundry/edgex-compose/blob/main/compose-builder/README.md) for details.

### Compose Tool

Expand All @@ -26,10 +20,10 @@ This folder contains the following compose files:

#### Generated Compose files

> **NOTES: **
> **Note to Developers: **
>
> - *DO NOT EDIT the files directly for permanent changes. Make all permanent changes to the source compose files in the `compose-builder` folder and then regenerate these files*
> - Use `make build` from `Compose Builder` to regenerate all the following compose files.
> - Use `make build` from **Compose Builder** to regenerate all the following compose files.
> - See each description for the convenience `make` commands that are provided to work with each of these compose files.
- **docker-compose.yml**
Expand All @@ -40,46 +34,21 @@ This folder contains the following compose files:

- Use `make pull <service(s)>` to pull all or some images for the services in this compose file.

- Use `make get-token` to generate a Kong access token for remote access of the services running from this compose file.

- **docker-compose-arm64.yml**
Contains all the services required to run in secure configuration on `ARM64` system. Includes the Device Virtual & Device REST device services and the UI.
**Make Commands**

- Use `make run arm64` and `make down` to start and stop the services using this compose file.
- Use `make pull arm64 <service(s)>` to pull all or some images for the services in this compose file.
- Use `make get-token arm64` to generate a Kong access token for remote access of the services running from this compose file.

- Use `make get-token` to generate a proxy access token for remote access of the services running from this compose file.

- **docker-compose-with-app-sample.yml**
Contains all the services required to run in secure configuration with Sample application service. Includes the Device Virtual, Device REST, UI & App Sample services. Use this version when using the UI to make changes to the configurable pipeline on the Sample application service.
**Make Commands**

- Use `make run app-sample` and `make down` to start and stop the services using this compose file.
- Use `make pull app-sample <service(s)>` to pull all or some images for the services in this compose file.

- **docker-compose-with-app-sample-arm64.yml**
Contains all the services required to run in secure configuration with the Sample application service on `ARM64` system . Includes the Device Virtual, Device REST, UI & App Sample services. Use this version when using the UI to make changes to the configurable pipeline on the Sample application service.

**Make Commands**

- Use `make run no-secty app-sample arm64` and `make down` to start and stop the services using this compose file.
- Use `make pull no-secty ui app-sample <service(s)>` to pull all or some images for the services in this compose file.

- **docker-compose-no-secty.yml**
Contains just the services needed to run in non-secure configuration. Includes the Device Virtual & Device REST device services and the UI.
**Make Commands**

- Use `make run no-secty` and `make down` to start and stop the services using this compose file.
- Use `make pull no-secty <service(s)>` to pull all or some images for the services in this compose file.

- **docker-compose-no-secty-arm64.yml**
Contains just the services needed to run in non-secure configuration on `ARM64` system. Includes the Device Virtual & Device REST device services and the UI.

**Make Commands**

- Use `make run no-secty arm64` and `make down` to start and stop the services using this compose file.
- Use `make pull no-secty arm64 <service(s)>` to pull all or some images for the services in this compose file.


- **docker-compose-no-secty-with-app-sample.yml**
Contains just the services needed to run in non-secure configuration with Sample application service. Includes the Device Virtual, Device REST, UI & App Sample services. Use this version when using the UI to make changes to the configurable pipeline on the Sample application service.
Expand All @@ -88,14 +57,6 @@ This folder contains the following compose files:
- Use `make run no-secty app-sample` and `make down` to start and stop the services using this compose file.
- Use `make pull no-secty app-sample <service(s)>` to pull all or some images for the services in this compose file.

- **docker-compose-no-secty-with-app-sample-arm64.yml**
Contains just the services needed to run in non-secure configuration with the Sample application service on `ARM64` system . Includes the Device Virtual, Device REST, UI & App Sample services. Use this version when using the UI to make changes to the configurable pipeline on the Sample application service.

**Make Commands**

- Use `make run no-secty app-sample arm64` and `make down` to start and stop the services using this compose file.
- Use `make pull no-secty app-sample <service(s)>` to pull all or some images for the services in this compose file.

- **docker-compose-openziti.yml**
Contains the services needed to bring OpenZiti online, configure it, and enable consul to perform underlay-based health checking. Used in conjunction with `make run (pull) zero-trust`. This compose file should be started before starting the `make run zero-trust` compose file.

Expand All @@ -116,7 +77,7 @@ The compose files under the `taf` subfolder are used for the automated TAF tests
Runs `down` command and removes all stopped containers, all volumes and all networks used by the EdgeX stack. Use this command when needing to do a fresh restart.

- `make get-token`
For secure mode only. Runs commands via docker to generate a new API Gateway token.
For secure mode only. Runs command via docker to generate a new API Gateway token.

### Additional compose files

Expand Down
14 changes: 7 additions & 7 deletions compose-builder/.env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# /*******************************************************************************
# * Copyright 2022 Intel
# * Copyright 2024 IOTech Ltd
# * Copyright 2024-2025 IOTech Ltd
# *
# * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
# * in compliance with the License. You may obtain a copy of the License at
Expand Down Expand Up @@ -45,13 +45,13 @@ DEVICE_S7_VERSION=latest
DEVICE_OPCUA_VERSION=latest
DEVICE_CAN_VERSION=latest

BAO_VERSION=2.1.1
BAO_VERSION=2.1
POSTGRES_VERSION=16.3-alpine3.20
KUIPER_VERSION=v2.1.0-beta.4
MOSQUITTO_VERSION=2.0.21
NANOMQ_VERSION=0.18.2
NATS_VERSION=2.9.25-alpine
NGINX_VERSION=1.25.5-alpine-slim
KUIPER_VERSION=2.1
MOSQUITTO_VERSION=2.0
NANOMQ_VERSION=0.18
NATS_VERSION=2.9-alpine
NGINX_VERSION=1.25-alpine-slim
EDGEX_USER=2002
EDGEX_GROUP=2001

Expand Down
9 changes: 0 additions & 9 deletions compose-builder/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1084,25 +1084,16 @@ build: build-canned build-taf

build-canned:
make compose ds-rest ds-virtual
make compose ds-rest ds-virtual arm64
make compose ds-rest ds-virtual asc-sample
make compose ds-rest ds-virtual asc-sample arm64
make compose ds-rest ds-virtual no-secty
make compose ds-rest ds-virtual no-secty arm64
make compose ds-rest ds-virtual asc-sample no-secty
make compose ds-rest ds-virtual asc-sample no-secty arm64
make compose ds-rest ds-virtual zero-trust
make compose ds-rest ds-virtual zero-trust arm64

build-taf:
make taf-compose taf-secty mqtt-verbose
make taf-compose taf-no-secty mqtt-verbose
make taf-compose taf-secty mqtt-verbose arm64
make taf-compose taf-no-secty mqtt-verbose arm64
make taf-compose-perf taf-perf
make taf-compose-perf taf-perf-no-secty
make taf-compose-perf taf-perf arm64
make taf-compose-perf taf-perf-no-secty arm64

build-taf-nanomq:
make taf-compose taf-no-secty nanomq no-secty
Expand Down
32 changes: 10 additions & 22 deletions compose-builder/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
## Edgex Docker Compose Builder

This folder contains the `Compose Builder` which is made up of **source** compose, **environment** files and a **makefile** for building the single file docker composes files. The `master` branch builds the `pre-release` compose files which are placed in the top level of this repository.
This folder contains the `Compose Builder` which is made up of **source** compose, **environment** files and a **makefile** for building the single file docker compose file configured for the `pre-release`.

### **Note to Developers**:
> *Once you have edited and tested your changes to these source files you **MUST** regenerate the standard `pre-release` compose files using the `make build` command.*
>
> Any options added or removed to/from the `make gen` and `make run` commands must to also be added/removed to/from the new` tui-generator.sh` script
>
### Generating Custom Compose Files

If one of the standard `pre-release` compose files doesn't meet your needs, you can generate and run a custom compose file using the `make gen <options>` command.
See [Gen](https://github.com/edgexfoundry/edgex-compose/blob/main/compose-builder/README.md#gen) and [Run](https://github.com/edgexfoundry/edgex-compose/blob/main/compose-builder/README.md#run) target details below.
`Run` simply runs the custom compose file after generating it.

### Compose CLI Command

The Makefile in this folder expects the `docker compose` CLI command to be on the path or it expects you to supply
Expand Down Expand Up @@ -174,23 +180,16 @@ Generates the all standard Edgex compose file variations and the TAF testing com
Standard compose variations are:
full secure (docker-compose.yml)
full secure for arm64 (docker-compose-arm64.yml)
full secure with app-sample (docker-compose-with-app-sample.yml)
full secure with app-sample for arm64 (docker-compose-with-app-sample-arm64.yml)
non-secure (docker-compose-no-secty.yml)
non-secure for arm64 (docker-compose-no-secty-arm64.yml)
non-secure with app-sample (docker-compose-no-secty-with-app-sample.yml)
non-secure with app-sample for arm64 (docker-compose-no-secty-with-app-sample-arm64.yml)
full secure with zero trust (docker-compose-zero-trust.yml)
TAF compose variations are:
full secure general testing (docker-compose-taf.yml)
full secure general testing for arm64 (docker-compose-taf-arm64.yml)
non-secure general testing (docker-compose-taf-no-secty.yml)
non-secure general testing for arm64 (docker-compose-taf-no-secty-arm64.yml)
full secure perf testing (docker-compose-taf-perf.yml)
full secure perf testing for arm64 (docker-compose-taf-perf-arm64.yml)
non-secure perf testing (docker-compose-taf-perf-no-secty.yml)
non-secure perf testing for arm64 (docker-compose-taf-perf-no-secty-arm64.yml)
```
#### Run

Expand All @@ -200,7 +199,6 @@ Runs the EdgeX services as specified by:
Options:
zero-trust: Runs with OpenZiti support for zero-trust networking
no-secty: Runs in Non-Secure Mode, otherwise runs in Secure Mode
arm64: Runs using ARM64 images
dev: Runs using local built images from edgex-go repo
'make docker' creates local docker images tagged with '0.0.0-dev'
app-dev: Runs using local built images from application service repos
Expand Down Expand Up @@ -271,7 +269,6 @@ Options:
zero-trust: Pulls images for OpenZiti, supporting zero-trust networking
no-secty: Pulls images for Non-Secure Mode, otherwise pull images
for Secure Mode
arm64: Pulls ARM64 version of images
delayed-start: Pull includes delayed start services- spire related services
and spiffe-token-provider service
ds-bacnet-ip: Pull includes device-bacnet-ip
Expand Down Expand Up @@ -318,7 +315,6 @@ Options:
zero-trust: Generates with OpenZiti support for zero-trust networking included
no-secty: Generates non-secure compose,
otherwise generates secure compose file
arm64: Generates compose file using ARM64 images
dev: Generates using local built images from edgex-go repo
'make docker' creates local docker images tagged with '0.0.0-dev'
app-dev: Generates using local built images from application service repos
Expand Down Expand Up @@ -374,20 +370,15 @@ Runs 'down' and removes all stopped containers, all volumes and all networks use
#### Get-token

```
get-token [options]
Generates a API gateway access token as specified by:
Options:
arm64: Generates a API gateway access token using ARM64 image
dev: Generates a API gateway access token using local dev built docker image
'make docker' creates local docker images tagged with '0.0.0-dev'
get-token
Generates a API gateway access token as specified by:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is the dev option still available?

```
#### Upload-tls-cert

```
upload-tls-cert [options] <environment_variables>
Upload a bring-your-own (BYO) TLS certificate to the API gateway as specified by:
Options:
arm64: Upload TLS certificate to the API gateway server using ARM64 image
dev: Upload TLS certificate to the API gateway server using local dev built docker image
'make docker' creates local docker images tagged with '0.0.0-dev'
Environment Variables:
Expand Down Expand Up @@ -425,7 +416,6 @@ Generates the EdgeX compose file as specified by options and stores them in the
Options:
zero-trust: Generates compose file with OpenZiti support for zero-trust networking included
no-secty: Generates non-secure compose file, otherwise generates secure compose file
arm64: Generates compose file using ARM64 images
dev: Generates using local built images from edgex-go repo
'make docker' creates local docker images tagged with '0.0.0-dev'
app-dev: Generates using local built images from application service repos
Expand Down Expand Up @@ -479,7 +469,6 @@ Generates a TAF general testing compose file as specified by options and stores
Options:
taf-secty: Generates general TAF testing compose file with security services
taf-no-secty: Generates general TAF testing compose file without security services
arm64: Generates TAF compose file using ARM64 images
```

#### Taf Perf Compose
Expand All @@ -491,7 +480,6 @@ Generates a TAF performance testing compose file as specified by options and sto
Options:
taf-secty: Generates performance TAF testing compose file with security services
taf-no-secty: Generates performance TAF testing compose file without security services
arm64: Generates TAF compose file using ARM64 images
```

#### Generation with custom memory limitations
Expand Down
1 change: 1 addition & 0 deletions compose-builder/gen-header
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# * Copyright 2024 Intel Corporation.
# * Copyright 2025 IOTech Ltd
# *
# * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
# * in compliance with the License. You may obtain a copy of the License at
Expand Down
2 changes: 1 addition & 1 deletion compose-builder/tui-generator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ function appServiceOption() {
# ARM64 Question Display Function #
####################################################################
function displayArm64() {
local message="Would you like to use ARM64 Images to generate the Compose file?"
local message="EdgeX supports multi-arch Images now. Would you like to use ARM64 Images instead of multi-arch Images to generate the Compose file?"
$WHIPTAIL --title "Images Architecture" --yesno --defaultno "$message" $LINES $COLUMNS
}

Expand Down
Loading