node.js - 构建Dockerfile Nodejs时如何连接minio
问题描述
通过 Dockerfile 构建项目时无法连接 minio。当我通过脚本节点运行项目时一切正常。
const minioConfig = {
endPoint: process.env.domain_minio || process.env.domain;
port: Number(process.env.port_endPoint) || 9001,
useSSL: false,
accessKey: process.env.accessKey,
secretKey: process.env.secretKey
}
const minioClient = new Minio.Client(minioConfig);
但是当我创建
minioClient.bucketExists(minioBucketAvatar, function(error, exists) {
if(error) {
console.log(error);
}
if (exists) {
return console.log('Bucket exists.', minioBucketAvatar)
}
else {
minioClient.makeBucket(minioBucketAvatar, 'us-east-1', function(err) {
if (err) return console.log('Error creating bucket.', minioBucketAvatar, err)
console.log('Bucket created successfully in "us-east-1".', minioBucketAvatar)
})
}
});
Dockerfile:
FROM node:10
RUN npm install -g nodemon
WORKDIR /api_kgp
COPY package*.json ./
RUN npm install
COPY . .
CMD node index.js
#Expose port and start application
EXPOSE 5000
CMD [ "npm", "start" ]
当我通过 Dockerfile 构建项目时,这是错误的。当我通过脚本节点运行项目时一切正常。
Error creating bucket. avatar { Error: connect ETIMEDOUT IP:9000
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
解决方案
请在“minioConfig”中将“ endPoint ”道具的名称更改为“ endpoint ”。
推荐阅读
- html - 为什么这个网格布局不起作用?具体来说:为什么嵌套的项目是按行排列而不是放在网格上的?
- mysql - 如何编写查询以在嵌套的 JSON 数组对象中获取 json 属性
- ubuntu - 在 Ubuntu 上安装 Erlang 以使用 Phoenix 和 Erlang 包“不可安装”
- kubernetes - 保留原始请求者 IPa 地址
- python-3.x - 如何与其他进程并行运行 tkinter 窗口?
- elixir - 如何使用 elixir 自定义任务启动持久牛仔服务器
- javascript - 在 x 轴上显示每 n 个标签
- java - 我无法获得有关 AngularJS 中验证错误的信息
- r - R dplyr:没有聚合函数的分组
- brython - 如何避免页面上的 Brython 错误?