Docker 节点:找不到入口点



我有以下 Dockerfile_dev docker文件:

FROM node:alpine
MAINTAINER "Desyllas Dimitrios"
ENV NEO4J_HOST=""
ENV NEO4J_USER=""
ENV NEO4J_PASSWORD=""
ENV MONGO_CONNECTION_STRING=""
ENV LOGS_DIR="/var/log/data_map"
COPY ./docker_scripts/entrypoint_dev.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh &&
    chown root:root /usr/local/bin/entrypoint.sh &&
    mkdir -p /opt/map &&
    mkdir -p /var/log/data_map &&
    chmod 0666 /var/log/data_map
EXPOSE 7474
VOLUME /var/log/data_map
VOLUME /opt/map
WORKDIR /opt/map
ENTRYPOINT ['/usr/local/bin/entrypoint.sh']

我有以下入口点:

#!/bin/sh
cd /opt/map
npm install
npm start

和构建图像是通过以下docker-compose

启动的
version: '2'
services:
  data_map_dev:
    build:
      context: .
      dockerfile: Dockerfile_dev
    image: 'pcmagas/data-map:dev'
    links:
      - 'neo4j_dev'
      - 'mongodb'
    volumes:
      - './src:/opt/map/src'
      - './www:/opt/map/www'
      - './package.json:/opt/map/package.json'
      - './docker-volumes/app_dev:/var/log/datamap'
    ports:
      - "9781:9780"
    environment:
      NEO4J_HOST: 'neo4j_dev'
      NEO4J_USER: 'neo4j'
      NEO4J_PASSWORD: 'neo4j'
      MONGO_CONNECTION_STRING: 'mongodb://mongodb:map_dev'
  neo4j_dev:
    image: 'neo4j'
    ports:
      - '7474:7474'
    volumes:
      - './docker-volumes/neo4j_dev/data:/data'
    environment:
      NEO4J_AUTH: 'neo4j/neo45j'
  mongodb:
    image: 'mongo'
    ports:
      - '27017:27017'
    volumes:
      - './docker-volumes/mongodb/:/data/db'

我使用docker-compose build --no-cache --force-rm构建它,当我通过docker-compose up启动它时,它无法在消息上看到的入口点脚本:

data_map_dev_1 |/bin/sh:[/usr/local/bin/entrypoint.sh]:找不到

您知道为什么吗?我的项目也有类似的问题。

您的JSON语法是错误的。

注意:Exec表单被解析为JSON数组,这意味着您必须在单词周围使用double-Quotes("),而不是单引号(’)。

https://docs.docker.com/engine/reference/builder/

切换到这样的双引号:

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

最新更新