bash - 在 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:
解决方案
试试这个 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
推荐阅读
- django - 能够上传文件但不能检索/显示它们 - 找不到页面
- python - 如何在python中格式化日期字符串
- db2 - 使用 DB2CLI 时抑制标头
- c++ - 如何在 Qt Creator 中将默认预选的应用程序类型从普通 C 应用程序永久更改为普通 C++ 应用程序?
- azure - 从 Azure Ad auth 获取配置文件图像
- docker - 什么时候必须在 Dockerfile 的 CMD 指令中使用 `/bin/sh -c "..."`?
- kubernetes - Tracing Apache Camel route with Jaeger
- node.js - Dialogflow 实现无法使用 Mongoose 连接到 MongoDB
- kubernetes - 如果 Kubernetes pod 超出其 cpu 资源“限制”会怎样?
- ios - 如何从 XcodeTest setup() 运行终端命令?