Unable to deploy Bamboo application on Docker container running on ARM-based architecture( Mac - OS )
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
The steps outlined on this article are provided AS-IS. This means we've had reports of them working for some customers — under certain circumstances — yet are not officially supported, nor can we guarantee they'll work for your specific scenario.
You may follow through and validate them on your own non-prod environments prior to production or fall back to supported alternatives if they don't work out.
We also invite you to reach out to our Community for matters that fall beyond Atlassian's scope of support!
This Knowledge base article covers a scenario where Bamboo application was not coming up and the container stopped immediately after starting up or would stop after running fine for a short period of time. Official Bamboo image was used from Docker hub.
The container was running on Docker desktop on Mac-OS with apple ARM based architecture.
Environment
The solution has been tested on Bamboo 9.5.1 but it will be applicable for other Bamboo version as well.
Diagnosis
The container would stop immediately or stop after running for a short period of time during the setup process.
Looking at the container logs we can see the error > A fatal error has been detected by the Java Runtime Environment, details below
Docker container logs
1
2
3
4
5
6
7
8
9
10
11
12
[thread 50 also had an error]
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007ffffe962573, pid=7, tid=48
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.11+9 (17.0.11+9) (build 17.0.11+9)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.11+9 (17.0.11+9, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x73f573] G1ParScanThreadState::steal_and_trim_queue(GenericTaskQueueSet<OverflowTaskQueue<ScannerTask, (MEMFLAGS)5, 131072u>, (MEMFLAGS)5>*)+0x7d3
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
Cause
The official Bamboo image from Docker hub is supported only for linux/amd64. If the same image is used on ARM architecture machines unexpected error related to JVM especially Garbage collection is seen.
If you deploy the official Bamboo image on Docker desktop running on Mac-OS below Warning message is also seen.
1
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Solution
Solution 1
Build your image compatible with arm64 architecture
Please refer Bamboo docker containers for more details, refer the section > Building your own image, putting the steps below from the article.
Clone the Atlassian repository at https://bitbucket.org/atlassian-docker/docker-bamboo-server/
Modify or replace the Jinja templates under
config
; NOTE: The files must have the.j2
extensions. However, you don't have to use template variables if you don't wish.Build the new image with e.g:
docker build --tag my-bamboo-image --build-arg BAMBOO_VERSION=8.x.x .
Optionally push to a registry, and deploy
Solution 2 ( Not recommended )
Use a precompiled image compatible on ARM based architecture from this docker hub repo.
The above image in solution 2 is not an official Bamboo image and it should not be used for any production environment. The image can be just used for testing purpose and is not officially supported or maintained by Atlassian.
Was this helpful?