mirror of
				https://github.com/Borjis131/docker-open5gs.git
				synced 2025-11-03 21:33:13 +00:00 
			
		
		
		
	Update Makefile and build options
This commit is contained in:
		
							
								
								
									
										50
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,7 +1,53 @@
 | 
				
			|||||||
# include docker-compose .env file
 | 
					# include docker-compose .env file
 | 
				
			||||||
include .env
 | 
					include .env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: build-base-open5gs
 | 
					.PHONY: base-open5gs amf ausf bsf nrf nssf pcf scp sepp smf udm udr upf webui all clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build-base-open5gs:
 | 
					base-open5gs:
 | 
				
			||||||
	docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t base-open5gs:${OPEN5GS_VERSION} ./images/base-open5gs
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t base-open5gs:${OPEN5GS_VERSION} ./images/base-open5gs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					amf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t amf:${OPEN5GS_VERSION} ./images/amf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ausf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t ausf:${OPEN5GS_VERSION} ./images/ausf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bsf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t bsf:${OPEN5GS_VERSION} ./images/bsf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nrf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t nrf:${OPEN5GS_VERSION} ./images/nrf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nssf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t nssf:${OPEN5GS_VERSION} ./images/nssf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pcf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t pcf:${OPEN5GS_VERSION} ./images/pcf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					scp: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t scp:${OPEN5GS_VERSION} ./images/scp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sepp: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t sepp:${OPEN5GS_VERSION} ./images/sepp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					smf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t smf:${OPEN5GS_VERSION} ./images/smf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					udm: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t udm:${OPEN5GS_VERSION} ./images/udm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					udr: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t udr:${OPEN5GS_VERSION} ./images/udr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					upf: base-open5gs
 | 
				
			||||||
 | 
						docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t upf:${OPEN5GS_VERSION} ./images/upf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					webui:
 | 
				
			||||||
 | 
						docker build --build-arg NODE_VERSION=${NODE_VERSION} --build-arg OPEN5GS_VERSION=${OPEN5GS_VERSION} -t webui:${OPEN5GS_VERSION} ./images/webui
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: base-open5gs amf ausf bsf nrf nssf pcf scp sepp smf udm udr upf webui
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						docker image remove base-open5gs:${OPEN5GS_VERSION} amf:${OPEN5GS_VERSION} ausf:${OPEN5GS_VERSION} bsf:${OPEN5GS_VERSION} nrf:${OPEN5GS_VERSION} nssf:${OPEN5GS_VERSION} \
 | 
				
			||||||
 | 
						pcf:${OPEN5GS_VERSION} scp:${OPEN5GS_VERSION} sepp:${OPEN5GS_VERSION} smf:${OPEN5GS_VERSION} udm:${OPEN5GS_VERSION} udr:${OPEN5GS_VERSION} upf:${OPEN5GS_VERSION} \
 | 
				
			||||||
 | 
						webui:${OPEN5GS_VERSION}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										36
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								README.md
									
									
									
									
									
								
							@@ -29,11 +29,27 @@ All the images depend on the base image. So first, update the `.env` file with t
 | 
				
			|||||||
- Default value: The one specified in the `.env` file
 | 
					- Default value: The one specified in the `.env` file
 | 
				
			||||||
- Tested values: 3.6.8, 4.2, 6.0
 | 
					- Tested values: 3.6.8, 4.2, 6.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`NODE_VERSION` is the version of Node.js being used to build the Open5GS WebUI.
 | 
				
			||||||
 | 
					- Accepted values are the tags used by Node in Docker Hub for its bookworm-slim image and the Node.js dependency of Open5GS WebUI
 | 
				
			||||||
 | 
					- Default value: 20
 | 
				
			||||||
 | 
					- Tested values: 20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`DOCKER_HOST_IP` is the IP address of the host running Docker. This modifies the `advertise` field in the `upf.yaml` config file for this to work when exposing the Docker containers network.
 | 
					`DOCKER_HOST_IP` is the IP address of the host running Docker. This modifies the `advertise` field in the `upf.yaml` config file for this to work when exposing the Docker containers network.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Build it (2 ways)
 | 
					## Build it (2 ways)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### First way (make + docker compose build)
 | 
					### First way (docker buildx bake)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					>Note: Requires docker-buildx-plugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					With this method, you can build all the images all at once with a single command (taking advantage of docker buildx parallelism), run:
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					docker buildx bake
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					>Note: This command uses the `docker-bake.hcl` file, please update the `OPEN5GS_VERSION`, `UBUNTU_VERSION` and `NODE_VERSION` variables there before running it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Second way (make + docker compose)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
>Note: Requires make and docker-compose-plugin
 | 
					>Note: Requires make and docker-compose-plugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,23 +60,23 @@ make
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
This will take a while, after this you will have the base image called `base-open5gs`, tagged with the `OPEN5GS_VERSION` selected.
 | 
					This will take a while, after this you will have the base image called `base-open5gs`, tagged with the `OPEN5GS_VERSION` selected.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
After this you can run the following to create the Network Functions images:
 | 
					Or you can run the following to create the base image and all the Network Function images:
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					make all
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Some deployments have the build instructions for the images (like the `basic` deployment), only depending of the `base-open5gs` image:
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
# Example using the basic deployment
 | 
					# Example using the basic deployment
 | 
				
			||||||
docker compose -f compose-files/basic/docker-compose.yaml --env-file=.env up -d
 | 
					docker compose -f compose-files/basic/docker-compose.yaml --env-file=.env up -d
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Second way (docker buildx bake)
 | 
					Some other deployments download the images needed from container registries like Docker Hub or GitHub Container Registry (like the `network-slicing` deployment):
 | 
				
			||||||
 | 
					 | 
				
			||||||
>Note: Requires docker-buildx-plugin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
With this method, you can build all the images all at once with a single command, run:
 | 
					 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
docker buildx bake
 | 
					# Example using the network-slicing deployment
 | 
				
			||||||
 | 
					docker compose -f compose-files/network-slicing/docker-compose.yaml --env-file=.env up -d
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
>Note: This command uses the `docker-bake.hcl` file, please update the `OPEN5GS_VERSION` and `UBUNTU_VERSION` variables there before running it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Use it
 | 
					## Use it
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ It is normal to see:
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
WARN[0297]
 | 
					WARN[0297]
 | 
				
			||||||
volume "open5gs_db_data" already exists but was not created for project "<deployment_name>".
 | 
					volume "open5gs_db_data" already exists but was not created for project "<deployment_name>".
 | 
				
			||||||
 | 
					volume "open5gs_db_config" already exists but was not created for project "<deployment_name>".
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It is only a warning, telling you that the Docker volume exists.
 | 
					It is only a warning, telling you that the Docker volume exists.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ You can use the Open5GS `open5gs-dbctl` script in the host to add users to the d
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
The database Docker volume is marked with a label `org.open5gs.mongodb_version` indicating the `MONGODB_VERSION` selected in the `.env` file. This marks the version used for the mongo container. This label is needed to debug issues with users changing the mongo container version but keeping the Docker volumes created.
 | 
					The database Docker volume is marked with a label `org.open5gs.mongodb_version` indicating the `MONGODB_VERSION` selected in the `.env` file. This marks the version used for the mongo container. This label is needed to debug issues with users changing the mongo container version but keeping the Docker volumes created.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> When upgrading/downgrading the `MONGODB_VERSION` the existing `open5gs_db_data` Docker volume could cause problems/crashing. It is recommended to remove it.
 | 
					> When upgrading/downgrading the `MONGODB_VERSION` the existing `open5gs_db_data` and `open5gs_db_config` Docker volumes could cause problems/crashing. It is recommended to remove them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Network Function configuration
 | 
					### Network Function configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user