我有以下Dockerfile_dev
泊坞文件:
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]:找不到
你知道为什么吗?我在my project也有类似的问题。
答案 0 :(得分:1)
您的JSON语法错误。
注意:exec表单被解析为JSON数组,这意味着您必须使用双引号(“)来围绕单词而不是单引号(')。
https://docs.docker.com/engine/reference/builder/
切换到双引号,如下所示:
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]