我在AWS ECS中使用docker,我希望使用docker将env变量传递给我的nodejs应用程序。
我的app.js很简单,它有告诉我某个
变量的值的路由:
app.get('/test', (req, res) => res.status(200).send(`${process.env.SOME} OK`));
docker-compose -f .docker/docker-compose.myweb.ecr.yml build www-app
docker-compose -f .docker/docker-compose.myweb.ecr.yml push www-app
aws ecs update-service --cluster web --service www --force-new-deployment
FROM node:latest
# ENV SOME=3000 <--- THIS IS WORKS, BUT I WANT TO DO IT IN COMPOSE FILE.
WORKDIR /usr/src/app
COPY ./dist/myapp/package.json .
RUN npm install
COPY ./dist/myapp .
EXPOSE 3000
CMD [ "npm", "start" ]
version: '3'
services:
www-app:
# env_file: ../.env
image: 32934544.dkr.ecr.us-east-2.amazonaws.com/www-app:latest
environment:
- SOME=6000
build:
context: ../
dockerfile: ./.docker/Dockerfile
问题内容: 我是Docker的新手,目前尚不清楚如何从容器访问外部数据库。硬编码连接字符串的最佳方法是吗? 问题答案: 您可以使用该标志将环境变量传递到您的容器。 启动脚本的示例: 或者,如果您不希望在命令行中使用,等显示该值,则可以直接从当前环境中获取该值,如果您不带: 如果您有许多环境变量,尤其是要保密的话,可以使用env文件: --env-file标志将文件名作为参数,并期望每行采用VAR
我是Docker的新手,不清楚如何从容器访问外部数据库。是在连接字符串中硬编码的最佳方法吗?
问题内容: 如何将主机环境变量(例如用户名和主机名)传递给dockerfile? 例如,如果我的用户名是: 如何编写Docker文件以获得相同的输出? 问题答案: 我遇到了同样的问题。我的解决方案是在docker-compose.yml内部提供变量,因为yml支持使用环境变量。 我认为这对我来说是最有效的方式,因为我不喜欢在命令行中使用类似以下内容一遍又一遍地键入它 在容器中,声明将无效,将设置为
我正在使用GAE部署我的应用程序,我想把一些环境变量传递给我的GAE实例。例如,每次我使用DB时,分配当前是这样的: 这很好,但问题是它是一个共享代码,每次有人进行本地测试时,它都会更改路径,并将更改推送到存储库。当有人拉动新的更改时,它需要更改以发出db请求,因为每个人都有不同的套接字更改路径。因此,我创建了以下声明: 因此,如果某个人的系统中有一个环境变量,那么它会接受该变量并避免绝对路径。问
我是第一次和docker合作,我正在努力弄清楚这一切。 在我正在进行的这个项目中,我们在启动文件中广泛使用了Windows环境变量。为了将这些内容放入配置中,我们使用AddEnvironmentVariables(string prefix)方法,如下所示: 在localhost和Azure中,这是没有问题的,因为我们已经将它们添加到了这些环境中。但是我不能想出如何在我的docker容器中配置这些
问题内容: 为什么此代码无法编译? 为什么我不能将类变量传递给? 问题答案: 该操作符对引用类型,像,而不是对象,如。您可能想要类似 旁注:如果编写,您的代码将更加简洁 但是,我不确定是否需要某种方法。