Я пытаюсь отправить изображения докера в 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'