Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How can I access a private repo within a docker service container?

Edited

Hello

 

I am using a docker service in bitbucket-pipelines and calling composer from within that container. However, that container does not have permission to access private repositories in bitbucket.

 

Would I need to create a new user just for the CI with a private key to get this working or is there an easier way to link to the existing account?

1 answer

1 accepted

1 vote
Answer accepted

Hi @Antonios Pavlakis ,

If you only need to clone (and not push to) another private Bitbucket repo, you can set up Access keys.

Let's say you have repo-A and repo-B, Pipelines is running in repo-A and you want to clone repo-B.

  1. In Bitbucket website, go to repo-A's Repository settings > SSH keys
  2. In that page you can generate an SSH key pair
  3. Copy the public SSH key
  4. Go to repo-B's Repository settings > Access keys
  5. Add there the public key you copied before

You will then be able to clone repo-B from Pipelines builds running in repo-A via SSH. You will need to have admin permissions to both repos to access their Repositories settings page.

Access keys give read-only access, so if you also need to push to repo-B, you'll need a different approach.

If you don't want to tie authentication to a certain user, you can set up OAuth:

If the repos don't belong in the same workspace, you'll need to generate an OAuth consumer in the workspace that owns repo B. You'll need to have admin permissions in the workspace to do that.

Please note that the script in the documentation above is for pushing back to the same repo where Pipelines is running. If you want to push to a different repo, you can adjust the URL in the example to be the one of repo-B and use that URL in the push command (no need to change origin).

I hope this helps, please feel free to let me know if you have any questions.

Kind regards,
Theodora

Hi,

 

This is a bit old now, but just pointing out that I was looking for a solution for the same problem.

The real problem is that the pipeline is fetching the repo, it's the docker image builder (another vm) that is doing that.

So far, the solutions I have run across are either using buildkit (not yet supported by bitbucket pipelines) or by passing the private and public key as variables and setting them in the .ssh dir of your user. 

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

📣 Calling Bitbucket Data Center customers to participate in research

Hi everyone, Are you Bitbucket DC customer? If so, we'd love to talk to you! Our team wants to dive deep to understand your long-term plans regarding Bitbucket DC and Atlassian Cloud. Do you plan...

185 views 2 4
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you