【发布时间】:2022-08-20 22:21:14
【问题描述】:
我的 java 应用程序(后端)在工作期间创建了一些文件。当我在进行一些更改后进行重建时,该文件将被删除,我的应用程序需要再次创建它。如何永久保存这些文件?我尝试创建音量,但它不起作用。
这是我的 docker-compose 配置:
version: \'3\'
services:
examledb:
container_name: examle-docker-db
image: postgres
volumes:
- examle-docker-db:/var/lib/postgresql/data
ports:
- \"5555:5432\"
expose:
- \"5555\"
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=postgres
- POSTGRES_DB=examle
- PGDATA=/var/lib/postgresql/data/pgdata
networks:
- examle-docker-network
restart: unless-stopped
backend:
container_name: examle-docker-backend
build: ./backend
volumes:
- /var/lib/docker/volumes/example_prod_example-backend-volume/_data:/root/projects/example_PROD/backend
ports:
- \"8080:8080\"
- \"8888:8888\"
depends_on:
- examledb
networks:
- examle-docker-network
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://examle-docker-db:5432/examle
restart: unless-stopped
frontend:
container_name: examle-docker-frontend
build: ./frontend
restart: unless-stopped
command: serve -s dist/vu4y-frontend -l 4200
networks:
- examle-docker-network
nginx:
image: nginx:stable
container_name: examle-docker-nginx
ports:
- \"80:80\"
- \"443:443\"
volumes:
- ./data/nginx:/etc/nginx/conf.d
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
depends_on:
- frontend
- backend
networks:
- examle-docker-network
command: \"/bin/sh -c \'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \\\"daemon off;\\\"\'\"
certbot:
image: certbot/certbot
restart: unless-stopped
volumes:
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
networks:
- examle-docker-network
entrypoint: \"/bin/sh -c \'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;\'\"
volumes:
examle-docker-db: { }
networks:
examle-docker-network:
driver: bridge
我也尝试像这样创建音量:
volumes:
- example-backend-volume:/root/projects/example_PROD/backend
它也不起作用。
我在 /root/projects/Example 中的 docker-compose.yml 布局
任何建议都会非常有帮助。所有文件都在与 src 和 pom.xml 相同类别的后端文件夹中创建。
标签: java docker docker-compose