Node.js standard_init_linux.go:219:exec用户进程导致:没有这样的文件或目录-docker问题
我对docker有一个问题,当运行命令Node.js standard_init_linux.go:219:exec用户进程导致:没有这样的文件或目录-docker问题,node.js,reactjs,docker,Node.js,Reactjs,Docker,我对docker有一个问题,当运行命令docker compose up-d--build3个容器app、数据库、api在应用程序innovation中创建时,但是当访问api容器中的docker终端时,我得到这个错误``这是我的docker-compose.yaml: version: "3" services: api: build: ./api entrypoint: ./.docker/entrypoint.sh container_na
docker compose up-d--build
3个容器app、数据库、api
在应用程序innovation
中创建时,但是当访问api容器中的docker终端时,我得到这个错误``这是我的docker-compose.yaml:
version: "3"
services:
api:
build: ./api
entrypoint: ./.docker/entrypoint.sh
container_name: quimiweb-innovation-api
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_HOST: ${DATABASE_HOST}
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
FRONTEND_URL: ${FRONTEND_URL}
ports:
- "1337:1337"
volumes:
- ./api/:/home/node/api
networks:
- app-network
database:
image: mongo
container_name: quimiweb-innovation-database
env_file: .env
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
networks:
- app-network
volumes:
- .database/:/data/db
ports:
- "27017:27017"
app:
build: ./app/
entrypoint: ./.docker/entrypoint.sh
container_name: quimiweb-innovation-app
env_file: .env
environment:
SKIP_PREFLIGHT_CHECK: ${SKIP_PREFLIGHT_CHECK}
ports:
- 3001:3001
volumes:
- ./app/:/home/node/app
networks:
app-network:
driver: bridge
volumes:
app-volume:
api中的My entrypoint.sh:
#!/bin/bash
yarn
yarn develop
在我的例子中,我通过将
entrypoint.sh
文件的行尾从CRLF
更改为LF
解决了这个问题
编辑
在右侧底部面板的记事本++中,右键单击区域
Windows(CR-LF)
,然后选择UNIX(LF)
,这将用LFs
替换所有CRLFs
,相同的问题,通过更改行尾来解决它。在更改生效之前,还必须重建映像。当启动在64位x86
代理上构建但运行在64位Arm
容器主机上的映像时,也可能会发生此错误。对于我来说,行尾已经是LF,我已删除所有映像并重建它们,但在构建之前,我发现我错过了谢邦-
#!/bin/bash
我刚刚添加了它,并重新构建了容器,发现它工作正常。请共享您的entrypoint.sh
#/bin/bash我该怎么做?在右侧底部面板的记事本+,右键单击区域窗口(CR LF)并选择UNIX(LF),这将用LFs替换所有CRLF,谢谢