我想在docker-compose.yml中指定一些环境变量,比如
例如:
在Vite应用程序的某个地方:
我猜这不起作用是因为Docker的环境和Vite的环境不同。
我的想法是通过创建一个包含.env文件的卷来实现类似的结果,但我不确定这是否是最佳解决方案。有没有什么想法如何实现这个?
API_URL
,这样我只需重新启动docker容器就可以更改它们。否则,每次我想要更改变量时都必须创建一个新的docker容器。例如:
version: "3.8"
services:
frontend:
container_name: "front"
image: "front"
ports:
- 5005:80
build:
context: .
# target: production
environment:
- VITE_API_URL=http://abcd.com
在Vite应用程序的某个地方:
console.log(import.meta.env.VITE_API_URL);
我猜这不起作用是因为Docker的环境和Vite的环境不同。
我的想法是通过创建一个包含.env文件的卷来实现类似的结果,但我不确定这是否是最佳解决方案。有没有什么想法如何实现这个?
environment:
块内定义变量时,它会将key=value作为环境变量暴露在Docker容器中。因此,你应该能够像读取.env
文件中的变量一样从应用程序中读取这些环境变量,而不会遇到任何问题。你在读取来自compose文件暴露的变量时遇到了什么问题? - undefinedVITE_
前缀,vite 将会识别并使用它,但声明时不带前缀。所以在你的情况下,使用import.meta.env.API_URL
应该可以正常工作。 - undefined"
引号括起来或使用反斜杠(\)进行转义吗? - undefined