Django docker-compose after restart 需要再次迁移
Django docker-compose after restart requires migration again
我做了这个单元文件。
[Unit]
Description=myservice
Requires=docker.service
After=docker.service
[Service]
Restart=always
# Remove old containers, images and volumes
ExecStartPre=/usr/local/bin/docker-compose -f my.yml down -v
ExecStartPre=/usr/local/bin/docker-compose -f my.yml rm -v
ExecStartPre=-/bin/bash -c 'docker volume rm $(docker volume ls -q)'
ExecStartPre=-/bin/bash -c 'docker rmi $(docker images | grep "<none>" | awk \'{print }\')'
ExecStartPre=-/bin/bash -c 'docker rm -v $(docker ps -aq)'
# Compose up
ExecStart=/usr/local/bin/docker-compose -f my.yml up
# Compose down, remove containers and volumes
ExecStop=/usr/local/bin/docker-compose -f my.yml down -v
[Install]
WantedBy=multi-user.target
在 运行 这个文件之前,我创建了这样的迁移:
docker-compose -f my.yml run --rm django python manage.py migrate
但是,在重新启动 OS 之后,我需要重新启动迁移,因为未检测到它们。
有什么问题吗?
经过实验,我在这里制作了这样一个单元文件,可以正常使用。
[Unit]
Description=myservice
Requires=docker.service
After=docker.service
[Service]
Restart=always
# Compose down
ExecStartPre=/usr/local/bin/docker-compose -f my.yml down
# Compose up
ExecStart=/usr/local/bin/docker-compose -f my.yml up
# Compose down
ExecStop=/usr/local/bin/docker-compose -f my.yml down
[Install]
WantedBy=multi-user.target
我做了这个单元文件。
[Unit]
Description=myservice
Requires=docker.service
After=docker.service
[Service]
Restart=always
# Remove old containers, images and volumes
ExecStartPre=/usr/local/bin/docker-compose -f my.yml down -v
ExecStartPre=/usr/local/bin/docker-compose -f my.yml rm -v
ExecStartPre=-/bin/bash -c 'docker volume rm $(docker volume ls -q)'
ExecStartPre=-/bin/bash -c 'docker rmi $(docker images | grep "<none>" | awk \'{print }\')'
ExecStartPre=-/bin/bash -c 'docker rm -v $(docker ps -aq)'
# Compose up
ExecStart=/usr/local/bin/docker-compose -f my.yml up
# Compose down, remove containers and volumes
ExecStop=/usr/local/bin/docker-compose -f my.yml down -v
[Install]
WantedBy=multi-user.target
在 运行 这个文件之前,我创建了这样的迁移:
docker-compose -f my.yml run --rm django python manage.py migrate
但是,在重新启动 OS 之后,我需要重新启动迁移,因为未检测到它们。 有什么问题吗?
经过实验,我在这里制作了这样一个单元文件,可以正常使用。
[Unit]
Description=myservice
Requires=docker.service
After=docker.service
[Service]
Restart=always
# Compose down
ExecStartPre=/usr/local/bin/docker-compose -f my.yml down
# Compose up
ExecStart=/usr/local/bin/docker-compose -f my.yml up
# Compose down
ExecStop=/usr/local/bin/docker-compose -f my.yml down
[Install]
WantedBy=multi-user.target