我正在尝试在EC2的实例中使用docker compose挂载Nginx服务器,我需要传递一个环境变量,该变量在实例的用户数据中定义

我尝试使用docker compose的environment选项上载它,但是当nginx上载时,它创建了一个静态代码,无法用“process.env.KEY”进行引用替换,我想知道是否有办法在构建之前将变量传递给nginx,或者在创建静态文件后将其更新


#!/bin/bash

echo KEY=keyexpected >> /etc/environment


version: "3.1"
services:
  container1:
                container_name: container1
                image: image1
                restart: always
                network_mode: bridge
                environment:
                        - KEY=${KEY}
                ports:
                - 8080:80
  container2:
                container_name: container2
                image: image2
                restart: always
                network_mode: bridge
                ports:
                - 3000:3000


const path = { key: process.env.KEY };
console.log(path.key)


FROM nginx:1.15.2-alpine

RUN rm -rf /usr/share/nginx/html/

COPY nginx/default.conf /etc/nginx/conf.d/

COPY build /usr/share/nginx/html/

EXPOSE 80

ENTRYPOINT nginx -g 'daemon off;'

预期:
console.log(path.key)---->“keyexpected”

实际:
process.env.KEY未定义

最佳答案

请尝试

#!/bin/bash
echo KEY="keyexpected" >> /etc/profile

07-28 01:28
查看更多