Build docker images pipeline doesn't clone code to docker images.
Asked by Chatree Kunjai:

Hi,

Today I found an issue that the docker images don't clone the code from the bitbucket repository when is build from the bitbucket pipeline.

On my Dockerfile has a step to clone the code from bitbucket to docker images with this step below.

```
RUN sed -i 's/^# StrictHostKeyChecking ask/ StrictHostKeyChecking no/g' /etc/ssh/ssh_config && \
git clone git@bitbucket.org:project/example-repo.git /home/app && \
sed -i 's/^# StrictHostKeyChecking/# StrictHostKeyChecking/g' /etc/ssh/ssh_config?
```

But after I tried to check inside the container that run with those docker images. The folder that should have a code is empty.

When I tried to build the docker images in my local laptop with the same docker file and the same command for docker build, the code from my repository is already pull to the application folder.

I tried to add a git debut to find out what is happening with \`GIT_TRACE=true GIT_SSH_COMMAND="ssh -vvv"\` options and I got whit this.

Block #1 Build the docker images with bitbucket pipeline. \[Result : no code inside app\]

```
debug2: channel 0: window 853335 sent adjust 8192
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug3: receive packet: type 96
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug3: receive packet: type 97
debug2: channel 0: rcvd close
debug2: channel 0: close_read
debug2: channel 0: input open -> closed
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close?
```

Block #2 Build the docker images in my laptop. \[Result: code is already clone to app\]

```
#18 32.43 debug2: channel 0: window 1966080 sent adjust 131072
#18 32.45 debug3: receive packet: type 98
#18 32.45 debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
#18 32.45 debug3: receive packet: type 96
#18 32.45 debug2: channel 0: rcvd eof
#18 32.45 debug2: channel 0: output open -> drain
#18 32.45 debug3: receive packet: type 97
#18 32.45 debug2: channel 0: rcvd close
#18 32.45 debug2: channel 0: close_read
#18 32.45 debug2: channel 0: input open -> closed
#18 32.45 debug3: channel 0: will not send data after close
#18 32.45 debug3: channel 0: will not send data after close
#18 32.45 debug2: channel 0: obuf empty
#18 32.45 debug2: channel 0: close_write
#18 32.45 debug2: channel 0: output drain -> closed
#18 32.45 debug2: channel 0: almost dead
#18 32.45 debug2: channel 0: gc: notify user
#18 32.45 debug2: channel 0: gc: user detached
#18 32.45 debug2: channel 0: send close
#18 32.45 debug3: send packet: type 97
#18 32.45 debug2: channel 0: is dead
#18 32.45 debug2: channel 0: garbage collecting
#18 32.45 debug1: channel 0: free: client-session, nchannels 1
#18 32.45 debug3: channel 0: status: The following connections are open:
#18 32.45 #0 client-session (t4 r0 i3/0 o3/0 fd -1/-1 cc -1)
```

Could please help me.


Answers:
author: Theodora Boudale
body: Hi [@Chatree Kunjai](/t5/user/viewprofilepage/user-id/4593682),

You mention that you tried to debug the issue by adding **GIT_TRACE=true GIT_SSH_COMMAND="ssh -vvv"** in the clone command. Could you please share the full output of the clone command with these flags, when you build the Dockerfile in Pipelines? Please sanitize any sensitive/private info from the output prior to sharing it here. The part of the output you have shared doesn't show any indication of why the clone is failing, so it would be good to check the full output.

How have you set up SSH authentication to clone the repo project/example-repo?

Kind regards,  
Theodora

comments: author: Chatree Kunjai
body: Hi [@Theodora Boudale](/t5/user/viewprofilepage/user-id/818086) ,

Thank you for your reply. I already attach the link to download the debug log that happen when git try to clone the code to docker images.

[pipelineLog.txt](https://www.dropbox.com/s/lbrbyicvod10ysg/pipelineLog.txt?dl=0)

About the SSH key authentication, I already add to my repository. That's why I can pull the code to docker images when I build the docker images on my laptop.

Regards.

Chatree.


author: Theodora Boudale
body: Hi Chatree,

Thank you for your reply and info. I checked the Pipelines log that you attached in your reply but I cannot see any indication on why this would fail. SSH authentication seems to succeed and I don't see any errors being reported. I see in that log that you're cloning into /var/www/html and that's a different directory than the one mentioned in your post, have you been testing this with different directories, and if so, have you checked the contents of /var/www/html?

In order to further troubleshoot this, we'd need to know some more details, like  
1. Whether the SSH key pair you use for authentication is committed in the source code of the repo  
2. The Dockerfile, so we can see what image your Docker image is based on and what commands are running to assemble the image  
so we can try to reproduce and see if that's an issue with configuration or an issue with Pipelines. Otherwise, the attempt to reproduce will be based on guessing, and we might test something completely different than what you're doing.

I can see that your Bitbucket Cloud account is an admin of a workspace on a paid billing plan, so if you don't feel comfortable sharing the above info here publicly, I can create a support ticket for you for this issue. The support ticket will be visible only to you and Atlassian staff, so you can share there the URL of the Pipelines build with this issue and we can further investigate. You can also create the support ticket yourself via <https://support.atlassian.com/contact/#/>, in 'What can we help you with?' select 'Technical issues and bugs' and then Bitbucket Cloud as product. However, please feel free to let me know if you prefer me to create it for you.

Kind regards,  
Theodora


author: Chatree Kunjai
body: ..


Tags: bitbucket-pipelines

build

docker

git

image