All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testcontainers.images.builder.dockerfile.DockerfileBuilder Maven / Gradle / Ivy

package org.testcontainers.images.builder.dockerfile;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.testcontainers.images.builder.dockerfile.statement.Statement;
import org.testcontainers.images.builder.dockerfile.traits.*;

import java.util.ArrayList;
import java.util.List;

@Data
@Slf4j
public class DockerfileBuilder implements DockerfileBuilderTrait,
        FromStatementTrait,
        AddStatementTrait,
        CopyStatementTrait,
        RunStatementTrait,
        CmdStatementTrait,
        WorkdirStatementTrait,
        EnvStatementTrait,
        LabelStatementTrait,
        ExposeStatementTrait,
        EntryPointStatementTrait,
        VolumeStatementTrait,
        UserStatementTrait {

    private final List statements = new ArrayList<>();

    public String build() {

        StringBuilder builder = new StringBuilder();

        for (Statement statement : statements) {
            builder.append(statement.getType());
            builder.append(" ");
            statement.appendArguments(builder);
            builder.append("\n");
        }

        String result = builder.toString();

        log.debug("Returning Dockerfile:\n{}", result);

        return result;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy