Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:配置验证错误:";JWT“机密”;是必需的&引用;JWT“到期时间”;是必需的。这是什么。如何避免这种情况_Javascript_Node.js_Express_Docker Compose_Configuration - Fatal编程技术网

Javascript 错误:配置验证错误:";JWT“机密”;是必需的&引用;JWT“到期时间”;是必需的。这是什么。如何避免这种情况

Javascript 错误:配置验证错误:";JWT“机密”;是必需的&引用;JWT“到期时间”;是必需的。这是什么。如何避免这种情况,javascript,node.js,express,docker-compose,configuration,Javascript,Node.js,Express,Docker Compose,Configuration,我有如下类似的docker compose.yml version: '3' services: api-server: build: ./api_test links: - 'db' ports: - '3000:3000' volumes: - ./api:/src - ./src/node_modules tty: true container_name: api-server db

我有如下类似的
docker compose.yml

version: '3'

services:
  api-server:
    build: ./api_test
    links:
      - 'db'
    ports:
      - '3000:3000'
    volumes:
      - ./api:/src
      - ./src/node_modules
    tty: true
    container_name: api-server

  db:
    build:
      context: .
      dockerfile: ./db/Dockerfile
    restart: always
    hostname: db
    environment:
      MYSQL_ROOT_PASSWORD: test
      MYSQL_USER: root
      MYSQL_PASSWORD: test
      MYSQL_DATABASE: test
    volumes:
      - './db:/config'
    ports:
      - 3306:3306
    container_name: db

构建
它们和
向上

当我试图输入它的
容器时

docker exec-it api服务器sh

npm启动

错误:配置验证错误:“JWT_SECRET”是必需的。“JWT到期时间”是必需的。

什么是JWT的秘密? 如何避免这种情况

如果有人有意见,请告诉我


谢谢

我发现你有一个.env文件,其中包含“JWT\u SECRET”和“JWT\u EXPIRY”等环境变量,而且在某种程度上,.env文件没有被用于docker compose。(最有可能的是,你在dockrignore中有.env,这确实是一个很好的实践)。因此,我们需要一种将.env文件或env变量发送到docker compose的方法。为此,请将以下内容添加到DOCKERFILE:

RUN echo JWT_EXPIRY=$JWT_EXPIRY \n\
JWT_SECRET=$JWT_SECRET >> ./.env
docker编写cmd的方式也在改变

docker-compose build --build-arg JWT_EXPIRY="your expiry" --build-arg JWT_SECRET = "your secret"

我们正在做的基本上是编写一个新的.env文件,其中的值在docker compose构建期间作为构建参数发送。

我认为您有一个.env文件,其中包含诸如“JWT_SECRET”和“JWT_Expiration”等环境变量,并且在某种程度上,.env文件没有被用于docker compose。(最有可能的是,你在dockrignore中有.env,这确实是一个很好的实践)。因此,我们需要一种将.env文件或env变量发送到docker compose的方法。为此,请将以下内容添加到DOCKERFILE:

RUN echo JWT_EXPIRY=$JWT_EXPIRY \n\
JWT_SECRET=$JWT_SECRET >> ./.env
docker编写cmd的方式也在改变

docker-compose build --build-arg JWT_EXPIRY="your expiry" --build-arg JWT_SECRET = "your secret"

我们正在做的基本上是编写一个新的.env文件,其中包含我们在docker compose build期间作为构建参数发送的值。

您的代码中是否使用或任何类似的内容?是的,我想我必须在
.env
文件中设置JWT_SECRET和JWT_EXPIRATION。但由于我是新手,我不知道如何设置它。您的代码中有没有使用或类似的东西?是的,我想我必须在
.env
文件中设置JWT_SECRET和JWT_EXPIRATION。但由于我是新手,我不知道如何设置它。