1.) Split those both services into two seperate compose files
docker-compose-vpn.yml
version: "3.8"
services:
vpn:
...
docker-compose-app.yml
version: "3.8"
services:
app:
image: username:app
container_name: app
depends_on:
- vpn
network_mode: container:vpn
2.) Create and bring up vpn container
docker compose -f docker-compose-vpn.yml up -d
3.) Create a new vpn builder instance
docker buildx create --name vpn-builder --driver docker-container --driver-opt network=container:vpn --use
3.) Create and bring up vpn container
docker compose -f docker-compose-vpn.yml up -d
4.) Create image using your buildx vpn instance and publish it (--load
) to docker.
docker buildx b -f Dockerfile-app --load --no-cache --tag username:app .
5.) Start the new app container
docker compose -f docker-compose-app.yml up -d