What image is compatible with pipeline with pipe: atlassian/google-app-engine-deploy:1.1.1?
Asked by Bruce Wilcox:

```
maven:3.8.1-openjdk-8 was working but includes python 2

Getting an error saying Python 3 is now required.

What image has java 8, maven, and python 3?
```


Answers:
author: Theodora Boudale
body: Hi Bruce,

There is no requirement to use a specific Docker image as a build container with the pipe. When a pipe is executed, there is another Docker container (the pipe's container) running inside the build container of the step (Docker-in-Docker). The pipe's container should have all the tools it needs to run.

If another command of your build requires python 3, then you would indeed need to use a container with python 3 or install python 3 during the build by including the necessary commands in that step in your bitbucket-pipelines.yml.

For the build container, we support public and private Docker images including those hosted on Docker Hub, AWS, GCP, Azure, and self-hosted registries accessible on the internet. Please keep in mind that Atlassian neither owns nor maintains every single image in these registries, so I don't know which image would meet your requirements.

I did check, though, a different version of the image you are using, specifically maven:3.8.3-openjdk-8. If I use this image as a build container and add the following command in my yml file:

```
- python3 --version
```

it looks like Python 3 is installed, as the output is

```
+ python3 --version
Python 3.9.2
```

If you are familiar with Docker, we do recommend creating and using your own custom Docker image that includes only the tools and the versions you need, in order to keep it lightweight:

* <https://support.atlassian.com/bitbucket-cloud/docs/use-docker-images-as-build-environments/#Creating-a-custom-build-environment>

Kind regards,  
Theodora

comments: author: Bruce Wilcox
body: Thank you very much!

Docker image **maven:3.8.3-openjdk-8** got me back up and running.

As a solo, full stack, developer of 4 web applications, taking the time to build my own docker images for this purpose is something that would slow me down too much.

I very much appreciate how BitBucket pipelines increases my productivity dramatically.


author: Theodora Boudale
body: Hi Bruce,

Thank you for the update and you are very welcome!

I understand that building your own Docker image can be time-consuming. It's good to hear that the image **maven:3.8.3-openjdk-8** works for you and that pipelines increases your productivity.

Please feel free to reach out if you ever need anything else!

Kind regards,  
Theodora


author: Bruce Wilcox
body: Java 8 support in Google App Engine has been discontinued. Java 11 support will be discontinued in October. I am now trying to use Java 17 but I find that  
**image: maven:3.8.3-openjdk-17**  
does not include Python 3 so  
**pipe: atlassian/google-app-engine-deploy:1.1.1**  
fails.  
IMO the  
<https://bitbucket.org/atlassian/google-app-engine-deploy/src/master/>  
project should include a list of compatible Docker images.  
I need Java 21 support as well.  
Any help is appreciated.


author: Theodora Boudale
body: Hi Bruce,

As I explained in my initial answer a year ago, there is no requirement to use a specific Docker image as a step's build container with the pipe. A pipe starts a separate Docker container and it should run regardless of the step's build container. So, it's not clear how the absence of Python in the build container affects the pipe.

If you are experiencing issues with the pipe, then:

* Please ensure you are using the latest version of the pipe, which is 1.6.0 at the moment.
* Add the variable **DEBUG: 'true'** in the pipe's definition and also the variable **EXTRA_ARGS: '--verbosity=debug'**
* Afterwards, share the pipe's definition from your bitbucket-pipelines.yml file and also the pipe's output from the build logs, so we can better understand what is happening.

Kind regards,  
Theodora


author: Bruce Wilcox
body: I believe that the pipe **atlassian/google-app-engine-deploy** invokes gcloud and gcloud requires python.

I finally broke down and created my own Docker image that works.

Here is the Dockerfile:

```
FROM maven:3.9.8-eclipse-temurin-17

RUN apt-get update \
  && apt-get install -y python3 --no-install-recommends \
  && rm -rf /var/lib/apt/lists/*
```

See <https://hub.docker.com/repository/docker/itipsdev/docker-java17-pipeline/general>


Tags: bitbucket-cloud

bitbucket-pipelines

cloud

google