【发布时间】:2021-09-09 01:08:25
【问题描述】:
我正在使用 mongodb atlas 托管数据库对一个 Strapi 应用程序进行 dockerizing。当我在 config/database.js 文件中硬编码数据库凭据时,图像工作正常。但我想从 .env 文件中获取这些凭据。根据strapi doc,我可以在不使用dotenv包的情况下在database.js文件中获取这些变量
但这显示了以下错误
error 连接到 Mongo 数据库时出错。 URI没有 主机名、域名和 tld
我尝试使用 dotenv 并使用 process.env 来获取变量,但它仍然显示相同的错误。知道如何解决这个问题吗?
数据库连接代码
require('dotenv').config()
const {
DATABASE_HOST,
DATABASE_USERNAME,
DATABASE_PASSWORD
} = process.env;
module.exports = ({ env }) =>
({
defaultConnection: 'default',
connections: {
default: {
connector: 'mongoose',
settings: {
host: env('DATABASE_HOST', 'open-jade-cms-0.r07jc.mongodb.net'),
srv: env.bool('DATABASE_SRV', true),
port: env.int('DATABASE_PORT', 27017),
database: env('DATABASE_NAME', 'open-jade-cms-dev'),
username: env('DATABASE_USERNAME', 'open-jade-data-admin'),
password: env('DATABASE_PASSWORD', 'uppERH7xmydTpXI8')
},
options: {
authenticationDatabase: env('AUTHENTICATION_DATABASE', null),
ssl: env.bool('DATABASE_SSL', true),
},
},
},
});
泊坞窗文件
FROM strapi/base
COPY ./ ./
RUN npm install
RUN npm install dotenv
RUN npm run build
CMD ["npm","run", "start:develop"]
【问题讨论】:
-
能否请您出示您的 Dockerfile 和 docker-compose.yml
-
当然。这只是 docker 文件。这里是 FROM strapi/base COPY ./ ./ RUN npm install RUN npm install dotenv RUN npm run build CMD ["npm","run", "start:develop"]
-
你可以在你的问题中发布 docker-compose 文件吗?
-
完成,请检查
-
我没有撰写文件,只是使用 docker 文件。
标签: node.js docker containers strapi dotenv