public static void addSetupContainer()

in src/main/java/jetbrains/teamcity/aws/template/services/ecs/setup/SetupContainerTask.java [36:70]


    public static void addSetupContainer(@NotNull final Construct scope,
                                         @NotNull final ApplicationLoadBalancedFargateService loadBalancedFargateService,
                                         @NotNull final AwsTeamCityTemplateEfs teamcityTemplateEfs,
                                         @NotNull final AwsTeamCityTemplateRds teamcityTemplateRds,
                                         @NotNull final Map<String, String> envVarsMap) {

        LogGroup setupContainerLogGroup = LogGroup.Builder.create(scope, "SetupLogGroup")
                .retention(RetentionDays.ONE_WEEK)
                .build();

        ContainerDefinition containerDefinition = loadBalancedFargateService.getService().getTaskDefinition().addContainer("Setup", ContainerDefinitionOptions.builder()
                .image(ContainerImage.fromRegistry("postgres:14.3"))
                .environment(envVarsMap)
                .entryPoint(Arrays.asList("/bin/sh", "-c"))
                .command(Collections.singletonList(
                        "apt-get update; apt-get install curl -y; mkdir -p /usr/local/lib/jdbc; curl https://jdbc.postgresql.org/download/postgresql-42.3.4.jar --output /usr/local/lib/jdbc/postgresql-42.3.4.jar; ls /usr/local/lib/jdbc; " + createDatabaseSh
                ))
                .logging(LogDriver.awsLogs(AwsLogDriverProps.builder()
                        .logGroup(setupContainerLogGroup)
                        .streamPrefix("setup")
                        .build()))
                .essential(false)
                .build());
        containerDefinition.addMountPoints(teamcityTemplateEfs.getDataDirMountPoint(), teamcityTemplateEfs.getLogsDirMountPoint());
        containerDefinition.getNode().addDependency(teamcityTemplateRds.getDatabaseInstance());

        assert loadBalancedFargateService.getTaskDefinition().getDefaultContainer() != null;
        loadBalancedFargateService
                .getTaskDefinition()
                .getDefaultContainer()
                .addContainerDependencies(ContainerDependency.builder()
                        .container(containerDefinition)
                        .condition(ContainerDependencyCondition.COMPLETE)
                        .build());
    }