首页 > 解决方案 > 在 entrypoint.sh 中运行 docker 命令时找不到 docker

问题描述

我越来越

app_1 | ./entrypoint.sh:第 2 行:docker:找不到命令

在 entrypoint.sh 中运行这行代码时

docker exec -it  fullstacktypescript_database_1 psql -U postgres -c "CREATE DATABASE elitypescript"

我将如何正确执行此命令?

入口点.sh

# entrypoint.sh
docker exec -it  fullstacktypescript_database_1 psql -U postgres -c "CREATE DATABASE elitypescript"
npm run seed # my attempt to run seed first before server kicks in. but doesnt work
npm run server

码头工人-compose.yml

# docker-compose.yml
version: "3"
services:
  app:
    build: ./server
    depends_on:
      - database
    ports:
      - 5000:5000
    environment:
      PSQL_HOST: database
      PSQL_PORT: 5430
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_DB: ${POSTGRES_DB:-elitypescript}
    entrypoint: ["/bin/bash", "./entrypoint.sh"]
  client:
    build: ./client
    image: react_client
    links:
      - app
    working_dir: /home/node/app/client
    volumes:
      - ./:/home/node/app
    ports:
      - 3001:3001
    command: npm run start
    env_file:
      - ./client/.env

  database:
    image: postgres:9.6.8-alpine
    volumes:
      - database:/var/lib/postgresql/data
    ports:
      - 3030:5439

volumes:
  database:

标签: bashdockerdocker-compose

解决方案


试试这个 Dockerfile :

FROM node:10.6.0
COPY . /home/app
WORKDIR /home/app
COPY package.json ./
RUN npm install
ENV DOCKERVERSION=18.03.1-ce
RUN curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz \
  && tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker \
  && rm docker-${DOCKERVERSION}.tgz
EXPOSE 5000

推荐阅读