【问题标题】:How to update configuration file (.env file) while running docker container如何在运行 docker 容器时更新配置文件(.env 文件)
【发布时间】:2018-06-01 15:21:46
【问题描述】:

我已经创建了一个 nodejs 应用程序并按照此链接构建了 docker 映像 Dockerizing a Node.js web app

但是,我也在使用配置文件(.env 文件),我可以在其中维护所有环境变量并使用 process.env.<Variable_name> 访问它们。

我的server.js 文件如下所示。

'use strict';

const express = require('express');
require('dotenv').config()

// Constants
const PORT = process.env.PORT | 8080;
const HOST = process.env.HOST;

// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hello world\n');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

我的 .env 文件就是这个。

HOST=10.20.30.40
PORT=8080

我可以将我的 IP 地址和端口更改为任何内容,而无需更改 server.js 中的任何代码。与此类似,我想在将 .env 构建为 docker 映像时更新它。

这是我的 Dockerfile

FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./    
RUN npm install
COPY . .
COPY .env .    
EXPOSE 8080
CMD [ "npm", "start" ]

我知道我可以在构建映像时通过提供 --build-args 来更新 .env 文件。但是每次如果需要在 .env 中进行更改,我都必须重建映像并部署它。因此,我想在运行映像或容器时更新 .env 文件。

在下面的命令中是否有任何方法可以提供一些参数,以便更新 docker 中的 .env 文件。

docker run -p 49160:8080 -d <your username>/node-web-app

【问题讨论】:

    标签: node.js shell docker


    【解决方案1】:

    您可以使用 -v 向 docker 添加目录

    docker run -v /Path/To/The/Env/file:/env-file-directory -p ...
    

    然后使用名称 /env-file-directory 定位 docker 内链接目录中的文件

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 2020-06-23
      • 2021-03-19
      • 2021-02-10
      • 1970-01-01
      • 2017-01-07
      • 2018-10-14
      • 2021-12-10
      相关资源
      最近更新 更多