We are using Minio for local testing of S3 AND we have created docker-compose file with Minio and our app dependency are as follows:
Docker-Compose File:
version: "2.1"
services:
minio:
image: minio/minio
container_name: minio
ports:
- 9001:9001
volumes:
- minio_storage:/data
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
MINIO_REGION: us-east-1
command: server /data --console-address ":9001"
mem_limit: 512m
populate-minio-data:
container_name: "minio-data"
image: minio/mc
volumes:
- ./hello.txt:/tmp/hello.txt
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host rm local;
/usr/bin/mc config host add --quiet --api s3v4 local http://minio:9001 minio minio123;
/usr/bin/mc mb --quiet local/somebucketname1/;
/usr/bin/mc policy set public local/somebucketname1;
/usr/bin/mc cp /tmp/hello.txt local/somebucketname1/hello.txt;
"
depends_on:
- minio
archive-api-app:
image: openjdk:11
container_name: "archive-api-app"
ports:
- 8091:6001
volumes:
- /home/apcuser/dev/projects/ea-archive-service-v2/projects/application/archive-api:/app
command: [ 'java', '-jar', '/app/build/libs/archive-api-1.0.0.jar' ]
env_file:
- ./vars/default.env
volumes:
minio_storage:
And In java code, I have configured MINIO URL as S3 Endpoint as follows:
@Bean
public AmazonS3 getS3Client() {
return AmazonS3ClientBuilder.standard()
.withClientConfiguration(new ClientConfiguration().withMaxConnections(maxConnections)
.withConnectionTimeout(connectionTimeout).withMaxErrorRetry(maxRetry))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://minio:9001", "us-east-1"))
.build();
}
Once, I run docker-compose file,I am able to see minio-ui in my local Linux machine as follows:
But when I am hitting API request from postman
to my archive-api-app
, App throwing below error:
archive-api | at java.base/java.lang.Thread.run(Thread.java:829)
archive-api | Caused by: java.net.UnknownHostException: alc-vbox-testarchiveservice.minio
archive-api | at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797)
archive-api | at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1519)
archive-api | at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1378)
archive-api | at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1306)
archive-api | at com.amazonaws.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:27)
archive-api | at com.amazonaws.http.DelegatingDnsResolver.resolve(DelegatingDnsResolver.java:38)
archive-api | at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:112)
archive-api | at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)
archive-api | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
archive-api | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
archive-api | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
archive-api | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
archive-api | at com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76)
archive-api | at com.amazonaws.http.conn.$Proxy97.connect(Unknown Source)
archive-api | at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
archive-api | at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
archive-api | at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
archive-api | at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
archive-api | at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
archive-api | at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
archive-api | at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72)
archive-api | at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1346)
archive-api | at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
archive-api | ... 77 more
Does anyone know Why I am getting UnknownHostException
? My doubt is since, I configured Minio-url(http://minio:9001) in the code where I am creating S3 configs, then why my code is trying to connect to alc-vbox-testarchiveservice.minio
host? (My bucket name is: alc-vbox-testarchiveservice)