Developer
News and Updates
Get Support
Sign in
Get Support
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Reference
Integrating a service
Last updated Jan 17, 2026

Testing a containerised service locally (EAP)

Forge Containers are now available through Forge's Early Access Program (EAP). To start testing this feature, submit your app's ID to our team through this link.

EAPs are offered to selected users for testing and feedback purposes. APIs and features under EAP are unsupported and subject to change without notice. APIs and features under EAP are not recommended for use in production environments.

For more details, see Forge EAP, Preview, and GA.

After [defining a containerised service](/platform/forge/containers-reference/managing-service), you can test it locally before you push its image to your container’s repository. You can then use `forge tunnel` to redirect app invocations from your development site to your local instance of the service.

To launch and run a service locally, you must have a docker engine installed.

Set up docker compose for a local instance

To launch a container locally, you’ll need to set up its docker compose configuration. You can do this in the manifest through the container’s tunnel property, which follows the same syntax as a standard docker compose file.

Either build or image should be defined, but not both. All other tunnel fields are required, except for environment.

build is defined

Use build if you want to rebuild the image each time the tunnel is started. For example:

1
2
tunnel:
  docker:
    build:
      context: ./services/java-spring-server
      dockerfile: Dockerfile
    ports:
      - "8080:8080"

image is defined

Use image to define a pre-built image for the tunnel instead. For example:

1
2
tunnel:
  docker:
    image: java-service:${TAG}
    ports:
      - "8080:8080"

Running forge tunnel will then create a docker compose stack using the container’s tunnel configuration and the latest Forge Containers proxy sidecar. Terminating the tunnel will also clean up the compose stack.

Optional: Set up a docker compose manually

Alternatively, you can manually set up the docker compose stack for one or more containers. This however, means you can’t include tunnel configurations for any containers in the manifest.

To start, download the Forge Containers platform sidecar, available from the following repository: forge-ecr.services.atlassian.com/forge-platform/proxy-sidecar:latest

For example, to use docker pull (you may need to re-authenticate the Docker CLI first):

1
2
forge containers docker-login
docker pull forge-ecr.services.atlassian.com/forge-platform/proxy-sidecar:latest

After downloading the sidecar, you’ll need to launch it as a separate service to run locally. We recommend defining it as a separate containerised service dependent on the service you’re testing. This will allow you to build and launch both services together. After configuring the sidecar and your service, build its image locally and launch it in the background. For example, using docker compose:

1
2
docker compose up --build -d

Once the docker compose is stack is created, you can now run forge tunnel -e <environment>.

Rate this page: