docker - 如何在 docker-compose.yml 中运行多个 shell 脚本
问题描述
我docker-compose.yml
看起来像这样
version: '3.8'
services:
database:
image: "postgres:10.16"
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=pg_database
volumes:
- database-data:/var/lib/postgresql/data/
ports:
- "35432:5432"
api:
build: ../../api
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=user
- POSTGRES_DB=pg_database
- POSTGRES_HOST=database
- POSTGRES_PORT=35432
ports:
- "3030:3030"
depends_on:
- "database"
migrations:
image: "node:14.17.5-alpine3.14"
volumes:
- "../migrations/scripts:/tmp"
- "../../api:/tmp/api"
links:
- database
command: "sh /tmp/migration_test.sh postgresql://user:password@host.docker.internal:35432/pg_database"
depends_on:
- "api"
- "database"
volumes:
database-data:
如果我在migration
服务中运行一个 shell 脚本,这将有效。但是,我希望能够运行 2 个 shell 脚本。一个接一个。不是同时。像这样的东西
migrations:
image: "node:14.17.5-alpine3.14"
volumes:
- "../migrations/scripts:/tmp"
- "../../api:/tmp/api"
links:
- database
command: >
"sh /tmp/migration_test.sh postgresql://user:password@host.docker.internal:35432/pg_database" &&
"sh /tmp/migration_test2.sh postgresql://user:password@host.docker.internal:35432/pg_database"
depends_on:
- "api"
- "database"
我没有得到正确的语法来让它工作。我尝试了不同的方法,但无法弄清楚。有没有人有什么建议?是否可以一个接一个地运行两个 shell 脚本?
解决方案
推荐阅读
- r - 在ggplot中绘制线条我得到x轴长度错误
- python - 使用 Python 将带分隔符的文本文件读取到 sqlite
- c - Why does sqrt function not work for values taken through user input?
- vim - How to (with good asymptotic complexity) delete all of a specific character from a (very long) line?
- python - django.db.utils.OperationalError:外键不匹配 - “django_admin_log”引用“transcript_userprofile”
- java - Necessity of storing variables in Firebase Database
- angular - 在 snapshotChanges() 中使用订阅通过 Firestore 检索值
- sql - SQL Server:以新记录作为输出的百分比计算
- maven - Change Maven-driven project based on Vaadin 11 to Vaadin 12 alpha version?
- javascript - 一键打开 2 个页面,但不能同时打开