File modification lost between script task and docker task

leozilla October 9, 2019

I have the following Java spec:

private Job buildAndPushImageJob(String jobName, String image, String version) {
String imageTagPin = format("%s/%s:%s-%s", AWS_ECR, image, version, "${bamboo.buildNumber}");
String imageTagLatest = format("%s/%s:%s-latest", AWS_ECR, image, version);
String imageFilePath = format("docker/%s/Dockerfile", image);

return new Job(jobName, jobName.toUpperCase())
.tasks(
gitRepositoryCheckoutTask(),
new ScriptTask().inlineBody(format("sed -i 's/CONTAINER_REGISTRY/%s/' %s", AWS_ECR, imageFilePath)),
buildDockerImage(image, Paths.get(imageFilePath), imageTagPin, imageTagLatest),
new DockerPushImageTask().customRegistryImage(imageTagPin),
new DockerPushImageTask().customRegistryImage(imageTagLatest));
}

 

As you can see I first replace some string in my `Dockerfile` and in the next task I try to build this dockerfile.
The issue is that the replacing of the file works/takes effect only in the script task but when building the docker image the modification of the `Dockerfile` seems to be lost.

So when the following task shows me that the `sed` itself did work:

new ScriptTask().inlineBody("#!/bin/sh -x\n" +
"cat " + imageFilePath + "\n" +
format("sed -i 's/CONTAINER_REGISTRY/test/' %s", imageFilePath) + "\n" +
"cat " + imageFilePath + "\n")


The job itself is not running in docker.

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events