Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Bitbucket pipelines: does Docker volume mounting work yet?

Drew Robinson January 11, 2018

I have a similar issue to this question but I have tried the suggested solutions and volume mounting still does not work.

  • I have verified that the directory I am trying to mount as a volume does exist within my build directory
  • I have run the `docker run ...` bare command with my container, which downloads and runs the container with no problems
  • I have tried using a volume mount with the environment variable, e.g. `docker run -v="$BITBUCKET_CLONE_DIR/dist:/dist" 18fgsa/html-proofer /dist`
  • I have also tried using a volume mount with the absolute path, e.g. `docker run -v="/opt/atlassian/pipelines/agent/build/dist:/dist" 18fgsa/html-proofer /dist`
  • I have also tried the volume mount option in the other format, e.g. `docker run -v "$BITBUCKET_CLONE_DIR/dist:/dist" 18fgsa/html-proofer /dist`

All of these permutations have resulted in the same error:

`docker: Error response from daemon: authorization denied by plugin pipelines: Command not supported.`

Is there some permission which has not been enabled for Docker volume mounts??

3 answers

1 accepted

3 votes
Answer accepted
Drew Robinson January 11, 2018

Ok, for anyone reading this, as per the reply linked above, the answer is that you can currently only mount the bare $BITBUCKET_CLONE_DIR itself as the source for a volume. Any paths below it must be accounted for in your parameters passed to the run command.

So I changed my first example above to:

docker run -v="$BITBUCKET_CLONE_DIR:/app" 18fgsa/html-proofer /app/dist

... and then it worked.

Thanks @Philip Hodder 

Chris Gunnels April 7, 2019

I've tried this solution but still running into the error. I'm running

docker-compose run -d -v="$BITBUCKET_CLONE_DIR:/my_app_name" service_name

What am I missing here?

Drew Robinson April 7, 2019

What’s your exact error Chris? Because you’re using `docker-compose` instead of Docker as I was, you may be subject to different permissions. 

Chris Gunnels April 8, 2019

Hey Drew, I'm getting this error:

ERROR: for app_name_postgres Cannot create container for service db: authorization denied by plugin pipelines: -v only supports $BITBUCKET_CLONE_DIR and its subdirectories

Drew Robinson April 8, 2019

The “-v” option for mounting volumes doesn’t exist on docker-compose, only on docker itself. 

Check your docker-compose.yml file for other volume mounting directives which may be clashing with the Bitbucket limitations.

https://confluence.atlassian.com/bitbucket/run-docker-commands-in-bitbucket-pipelines-879254331.html

dmoller September 21, 2021

I can't recall the docker-compose CLI reference from 2019 but I'd swear the -v was already valid just as it is now!

https://docs.docker.com/compose/reference/run/

0 votes
dmoller September 21, 2021

Additionally to only mounting BITBUCKET_CLONE_DIR, beware that files should be world-readable (I guess). That is chmod o+r.

In my case I was creating files with the mktemp tool and they would have 0600 permissions by default. They are fully operable from the pipeline script and permissions are not distinguishable once inside the subcontainer, but they will fail to be read!

0 votes
Drew Robinson January 11, 2018

Aha, I've just seen this reply to a similar question, I'll try that and see if it works for my issue.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events