[英]In docker container are not created db migrations
誰能說出為什么我的遷移不是在 docker 容器中創建的? 在本地我有一個工作項目,但在容器中沒有表。 在本地創建了我的表,但是當我運行 docker-compose up 時,控制台日志中沒有遷移
我的 Dockerfile:
FROM golang:1.17-alpine as build-stage
RUN mkdir -p /app
WORKDIR /app
COPY . /app
RUN go mod download
RUN go build -o crypto main.go
FROM alpine:latest
WORKDIR /
COPY --from=build-stage /app/crypto .
EXPOSE 9999
ENTRYPOINT [ "/crypto" ]
碼頭工人-compose.yml
version: "3"
volumes:
crypto_postgres_data: {}
services:
crypto:
build:
context: .
dockerfile: ./Dockerfile
image: crypto_app
platform: linux/amd64
env_file:
- ./.env
depends_on:
- postgres
ports:
- "9999:9999"
postgres:
image: postgres:14.2
healthcheck:
test: [ "CMD", "pg_isready", "-U", "$POSTGRES_USER", "-d", "$POSTGRES_DB" ]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
env_file:
- ./.env
deploy:
resources:
limits:
cpus: '1'
memory: 4G
volumes:
- crypto_postgres_data:/var/lib/postgresql/data:Z
migrate:
image: migrate/migrate
volumes:
- .:/migrations
My output in container:
[gomigrate] 2022/06/22 14:02:11 Migrations path: migrations/
[gomigrate] 2022/06/22 14:02:11 Migrations table not found
[gomigrate] 2022/06/22 14:02:11 Created migrations table: gomigrate
[gomigrate] 2022/06/22 14:02:11 Migrations file pairs found: 0
提前致謝
您的遷移服務沒有任何命令,因此它無法遷移遷移文件夾中的數據。 你應該像這樣改變它:
version: "3"
volumes:
crypto_postgres_data: {}
services:
crypto:
build:
context: .
dockerfile: ./Dockerfile
image: crypto_app
platform: linux/amd64
env_file:
- ./.env
depends_on:
- postgres
ports:
- "9999:9999"
networks:
- crypto
postgres:
image: postgres:14.2
healthcheck:
test: [ "CMD", "pg_isready", "-U", "$POSTGRES_USER", "-d", "$POSTGRES_DB" ]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
env_file:
- ./.env
deploy:
resources:
limits:
cpus: '1'
memory: 4G
volumes:
- crypto_postgres_data:/var/lib/postgresql/data:Z
networks:
- crypto
migrate:
image: migrate/migrate
restart: on-failure:5
env_file:
- ./.env
volumes:
- ./migrations:/migrations
command: ["-path", "/migrations", "-database", "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable", "up"]
depends_on:
- db
networks:
- crypto
networks:
crypto:
driver: bridge
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.