【发布时间】:2020-05-31 23:34:34
【问题描述】:
您好,我是 docker 和 linux 新手,我不知道如何为我的 docker 在 postgress 之后运行脚本
这是我的脚本:
until psql -c '\l'; do
echo >&2 "$(date +%Y%m%dt%H%M%S) Postgres is unavailable - sleeping"
sleep 1
done
echo >&2 "$(date +%Y%m%dt%H%M%S) Postgres is up - executing command"
exec ${@}
我的码头文件:
FROM node:lts-alpine
RUN mkdir -p /home/node/api/node_modules && chown -R node:node /home/node/api
WORKDIR /home/node/api
COPY wait-pg.sh ormconfig.json .env package.json yarn.* ./
USER node
RUN yarn
COPY --chown=node:node . .
EXPOSE 4000
RUN chmod +x /wait-pg.sh
CMD ["yarn", "dev"]
我的码头工人撰写:
version: '3.7'
services:
db-pg:
image: postgres:12
container_name: db-pg
ports:
- '${DB_PORT}:5432'
environment:
ALLOW_EMPTY_PASSWORD: 'no'
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
POSTGRES_DB: ${DB_NAME}
volumes:
- ci-postgres-data:/data
ci-api:
build: .
container_name: ci-api
volumes:
- .:/home/node/api
- /home/node/api/node_modules
ports:
- '${SERVER_PORT}:${SERVER_PORT}'
depends_on:
- db-pg
logging:
driver: 'json-file'
options:
max-size: '10m'
max-file: '5'
volumes:
ci-postgres-data:
如果有人可以像我在 docker compose 和 dockerfile 中那样帮助我。 我想知道如何将我的脚本添加到我的 docker 文件和 docker compose
【问题讨论】:
-
如果您只想检查 postgres 是否启动,请考虑使用
healthchecks -
我尝试了健康检查,但没有成功,我看到在版本 3 中,依赖项的条件已停止
-
你能帮我做脚本和健康检查吗?
-
下面问题的答案可以帮到你Unable to connect mysql from docker container?
-
@MostafaHussein 我试试这个,但我不只是使用 docker-compose 所以我有疑问
标签: postgresql docker docker-compose