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

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

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 to redirect docker output to an artifact Edited

I'm running some tests (php-cs-fixer) inside a docker container as part of a bamboo build.

I can generate output in junit format, which I want to save as a build artifact and later process with bamboo's "JUnit Parser" task.

php-cs-fixer is not able to write to file, so I want to redirect stdout to a file, either inside the container or on the bamboo host.

I can do output redirection natively with docker, like so:

$ docker run my-docker-php-image sh -c 'vendor/bin/php-cs-fixer fix --format junit > /tmp/php-cs-fixer.xml'

 

Whilst typing up this question, I've got something to work. Perhaps this could be cleaned up and added to the bamboo documentation?

  1. create a docker task to "Run a docker container"
  2. set an image (mine is php + composer + required extensions from an internal docker repo)
  3. add volume for checked out code, eg ${bamboo.working.directory}/deploy => /srv/app
  4. add volume for artifacts, eg ${bamboo.working.directory}/artifacts => /srv/artifacts
  5. set working directory to /srv/app
  6. additional arguments: "--user root" (because I had an error writing to artifacts directory, possibly due to my container running as non-root, per security recommendations?)

The docker container command is then:

sh -c '"vendor/bin/php-cs-fixer" "fix" "--dry-run" "--config=.php_cs.dist" "--using-cache=no" "--format" "junit" > /srv/artifacts/php-cs-fixer.${bamboo.buildNumber}.xml'

You need to quote the hell out of everything, and also pass the whole command through "sh -c" so that output redirection works.

Lastly, add a "JUnit Parser" task, and make it final (since the tests will not always pass)

0 answers

Suggest an answer

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

Bamboo 7.1 is here and is packed with value!

I'm happy to announce that Bamboo 7.1 has been released and it’s overflowing with awesome new features. Top-voted issues First and foremost, a bunch of JAC top voted issues has been delivered - y...

912 views 4 7
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