我有一个 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)我想知道更新存储在包含 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)
我有一些 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)
卷目录屏幕
我正在循环一个字符串数组,并希望将这些字符串以 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)