我正在为一个小型个人项目开发一个API,而今天,当我试图组合docker容器时,我遇到了这个问题。
错误码
npm ERR! code EXDEV
npm ERR! syscall rename
npm ERR! path /usr/src/app/node_modules/aproba
npm ERR! dest /usr/src/app/node_modules/.aproba-zsSvSz54
npm ERR! errno -18
npm ERR! EXDEV: cross-device link not permitted, rename '/usr/src/app/node_modules/aproba' -> '/usr/src/app/node_modules/.aproba-zsSvSz54'
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-11-21T15_33_05_552Z-debug.log
ERROR: Service 'api-backend' failed to build : The command '/bin/sh -c npm install' returned a non-zero code: 238此前(21-11-2020年),一切都很顺利。但当我试图使用Bcrypt时,我开始发现错误。过了一段时间,我回过头来,突然间我犯了这个错误。我将链接我的对接-撰写和对接文件在下面。
文档:
FROM node
WORKDIR /usr/src/app
ENV DB_HOST=api-db \
DB_PORT=${DB_PORT} \
DB_DATABASE=${DB_DATABASE} \
DB_USERNAME=${DB_USERNAME} \
DB_PASSWORD=${DB_PASSWORD}
COPY package*.json ./
RUN npm install
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y postgresql-client
COPY docker-entrypoint /usr/local/bin/
RUN sed -i -e 's/\r$//' /usr/local/bin/docker-entrypoint && chmod +x /usr/local/bin/docker-entrypoint
ENTRYPOINT [ "docker-entrypoint" ]
EXPOSE 8888docker-compose:
version: "3.8"
services:
api-backend:
image: node
build: .
hostname: backend
env_file:
- .env
ports:
- 3000:3000
volumes:
- .:/usr/src/app
restart: on-failure:3
depends_on:
- api-db
api-db:
image: postgres
hostname: api-db
environment:
- POSTGRES_DB=${DB_DATABASE}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
ports:
- 2345:5432
volumes:
- ./migrations:/docker-entrypoint-initdb.d
restart: on-failure:3
networks:
default:
external:
name: ${NETWORK:-local}docker-entrypoint
#!/bin/bash
# waits for a database to come up
wait_for_db() {
local host="$1" port="$2" user="$3" password="$4" name="$5"
local psql=(psql postgres -p "$port" -U "$user" --password="$password" "$5")
echo "[db] not yet ready to accept connections"
WAIT_FOR_PG_ISREADY="while ! pg_isready; do sleep 1; done;"
docker-compose exec postgres bash -c "$WAIT_FOR_PG_ISREADY"
echo "[db] ready to accept connections"
}
wait_for_db "$DB_HOST" "$DB_PORT" "$DB_USERNAME" "$DB_PASSWORD" "$DB_DATABASE" || exit 0
npm run dev #app.js我试着使用FROM node:14.15运行,这似乎是可行的。所以可能与最新的节点图像有关。
发布于 2020-12-04 16:26:38
使用像FROM node:14.15这样的特定节点图像,而不是使用膝状体FROM node可以工作。
https://stackoverflow.com/questions/64945033
复制相似问题