как добавить плагин aws-java-sdk-ecr в Gradle - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь отправить изображения докера в aws ecr с помощью плагина aws-java-sdk-ecr.

Создан класс для получения токена доступа для ecr.Но плагин как-то не распознает библиотеки AmazonECR и AWSStaticCredentialsProvider.как настроить плагин для работы с библиотеками?

<pre><code>
import com.bmuschko.gradle.docker.tasks.image.Dockerfile
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage

plugins {
id 'org.springframework.boot'
id "org.sonarqube" version "2.7"
id 'com.bmuschko.docker-remote-api' version '3.2.5'
id 'com.amazonaws:aws-java-sdk-bom' version '1.11.375'
id 'com.amazonaws:aws-java-sdk-ecr' version '1.11.375'
}

apply plugin: 'io.spring.dependency-management'
apply plugin: 'com.bmuschko.docker-remote-api'
apply plugin: 'com.amazonaws:aws-java-sdk-ecr:1.11.375'

class EcrLoginTask extends DefaultTask {
String accessKey
String secretCode
String region
String registryId

@TaskAction
String getPassword() {
    AmazonECR ecrClient = AmazonECRClient.builder()
            .withRegion(Regions.fromName(region))
            .withCredentials(new AWSStaticCredentialsProvider(new 
BasicAWSCredentials(accessKey, secretCode))).build()
    GetAuthorizationTokenResult authorizationToken = 
ecrClient.getAuthorizationToken(
            new 
GetAuthorizationTokenRequest().withRegistryIds(registryId))
    String token = 
authorizationToken.getAuthorizationData().get(0).getAuthorizationToken()
    System.setProperty("DOCKER_PASS", token)
    return token
}
}

repositories {
mavenCentral()
jcenter()
maven {
    url "https://naturalprogrammer.github.io/mvn-repository"
 }
}

dependencyManagement {
imports {
    mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.375'
}
}

task createDockerfile(type: Dockerfile) {
destFile = project.file('build/docker/Dockerfile')
from 'jdk:8'
copyFile 'app.jar', '/app/app.jar'
entryPoint 'java'
defaultCommand '-jar', '/app/app.jar'
exposePort 8080
}

task syncWebAppArchive(type: Sync) {
dependsOn assemble
from 'build/libs/app.jar'
into createDockerfile.destFile.parentFile
}

createDockerfile.dependsOn syncWebAppArchive

task buildImage(type: DockerBuildImage) {
dependsOn createDockerfile
inputDir = createDockerfile.destFile.parentFile
tag = "313125478111.dkr.ecr.us-west-2.amazonaws.com/public-app"
}

task getECRPassword(type: EcrLoginTask) {
accessKey 'AKIAUshthsdbser'
secretCode 'yvDshhdvhbdsrt'
region 'us-west-2'
registryId '313125478111'
}

task dpush(type: DockerPushImage) {
dependsOn buildImage, getECRPassword
imageName "313125478111.dkr.ecr.us-west-2.amazonaws.com/public-app"
}

dependencies {
compile 'com.bmuschko:gradle-docker-plugin:4.4.0'
implementation 'com.amazonaws:aws-java-sdk-bom:1.11.375'
implementation 'com.amazonaws:aws-java-sdk-ecr:1.11.375'
testCompile group: 'junit', name: 'junit', version: '4.11'
classpath "io.spring.gradle:dependency-management-plugin:0.5.4.RELEASE"
}

Я ожидаю, что он должен выдвинуть изображение в ecr, но в случае, когда я наведите курсор на AmazonECR его показ:

невозможно разрешить символ 'AmazonECR'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...