小编Bit*_*een的帖子

每次我执行 docker compose up 时,Docker 都会创建一个新卷

我有一个 docker-compose 文件,可以启动多个服务。我刚刚收到一条错误消息,指出我的磁盘空间不足,因此我输入“docker system df”并看到我有 21 个卷。如果我有 3 个 docker 容器,每个容器都附加一个卷,为什么它显示的卷总数为 21 个?

我正在使用 AWS EC2。这是我的撰写文件,我设置卷的方式有什么问题吗?当我关闭并重新启动时,postgres 数据得到保留,我只是对卷大小和由于 T2 Large 实例上没有空间而无法重建的消息感到困惑。

version: "3"
services:
  nftapi:
    env_file:
      - .env
    build:
      context: .
    ports:
      - '443:5000'
    depends_on: 
      - postgres
    volumes: 
      - .:/app
      - /app/node_modules
    networks:
      - postgres
      
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
    - "5432:5432"
    volumes:
    - /data/postgres:/data/postgres
    env_file:
    - docker.env
    networks:
    - postgres
 
  pgadmin:
    links:
    - postgres:postgres
    container_name: pgadmin
    image: dpage/pgadmin4
    ports:
    - "8080:80"
    volumes:
    - /data/pgadmin:/root/.pgadmin
    env_file:
    - docker.env
    networks:
    - …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services docker

5
推荐指数
1
解决办法
4366
查看次数

更新对象数组中的对象属性的最有效方法

我想知道更新存储在包含 10k+ 项的数组中的对象属性的最有效方法是什么。

例如,如果我有一个包含这样的对象的数组 {name:"", Price:"")

如果数组已包含该元素,我想替换或更类似于更新价格值。

检查数组是否包含名称 = x 的对象,如果是,则将价格替换为最新价格。

我不想在该数组中包含重复的元素,因此它不会变得很大,我认为如果属性值已存在于其中,我应该更新它。

到目前为止,我已经尝试了几种方法,例如使用 indexOf、splice 或仅使用 for 循环。我想知道处理大数组的最佳性能方式是什么。

let array = [
{name:"abc", price: 24},
{name:"cde", price: 25},
{name:"fgh", price: 22},
{name:"gfds", price: 21},
]

function addToArray(elem){
  //check if array contains elem by checking for name property value
  if(array.filter(el => el.name === elem.name).length > 0){
    //update the array element that has the name of the passed elem
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript node.js

5
推荐指数
1
解决办法
2万
查看次数

卷是匿名创建的,而不是在每次撰写上/下时命名和重新创建

我有一些 docker 容器,可以使用 docker-compose up / down 启动和停止。在 docker-compose.yml 中,我为每个容器定义了一个卷。据我了解,这些应该显示为 var/lib/docker/volumes 下的命名卷,但我所看到的只是一堆神秘的目录,每次重新启动容器时它们的数量也会增加。

每次我重新启动容器时,当我认为我正在使用卷来避免出现这样的情况时,数据库再次为空。我想保留数据。

我做错了什么吗?

version: "3"
services:
  nftapi:
    env_file:
      - .env
    build:
      context: .
    ports:
      - '5000:5000'
    depends_on: 
      - postgres
      
    networks:
      - postgres
      
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
    - "5432:5432"
    volumes:
    - /data/postgres:/data/postgres
    env_file:
    - docker.env
    networks:
    - postgres
 
  pgadmin:
    links:
    - postgres:postgres
    container_name: pgadmin
    image: dpage/pgadmin4
    ports:
    - "8080:80"
    volumes:
    - /data/pgadmin:/root/.pgadmin
    env_file:
    - docker.env
    networks:
    - postgres
 
networks:
  postgres:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

卷目录屏幕

在此输入图像描述

docker docker-compose

0
推荐指数
1
解决办法
2597
查看次数

Node.js axios - 如何使用相同的键将字符串数组作为查询参数传递?

我正在循环一个字符串数组,并希望将这些字符串以 30 个为一组作为查询参数传递到 axios GET 请求中,但我不知道如何正确执行。

const ids = ["1","2", "3", "4", "5"] //最多 10K 条目

我需要的是 30 个 id 作为查询参数,每个请求都具有相同的键,如下所示

axios.get("/endpoint?id=1&id=2&id=3&id=4") 等等。我的方法不起作用,我欢迎一些有关如何正确处理此问题的提示。

我拥有的

 const assets = await getRepository(Asset).find({ collection: collection })
      
      const token_ids = assets.map(a => {
        return a.token_id
      })

      const asset_count = assets.length;

      let config: AxiosRequestConfig = {
        headers: this.header,
        params: {
          limit: 50,
          offset: 0,
          side: 1,
          sale_kind: 0,
          order_by: "eth_price",
          order_direction: "asc",
          asset_contract_address: assets[0].asset_contract.address
        }
      }

      while (true) {
        const ids = token_ids.splice(0,30);   //get 30 ids …
Run Code Online (Sandbox Code Playgroud)

node.js axios

0
推荐指数
1
解决办法
2888
查看次数