![](/img/trans.png)
[英]Getting Errno::ENOENT: No such file or directory - createdb in a padrino api when creating a database in docker
[英]Upload File by API when using Docker
我正在編寫一個具有 PostgreSQL 數據庫的 Spring Boot 應用程序。 我的控制器中有一個 API,它獲取文件為
@RequestParam("file") MultipartFile 文件
並將文件保存在項目根文件夾中的文件夾中。 但是當我在調用 API 后使用 docker 時,沒有文件被保存在任何文件夾中,或者我可能不知道它在容器中的保存位置。 我正在使用 docker-compose 運行項目,這是我的 application.properties 和 docker-compose.yml 文件:
應用程序屬性:
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.platform=postgres
spring.datasource.url= jdbc:postgresql://localhost:5432/myDB?useSSL=true
spring.datasource.username= myusername
spring.datasource.password= mypassword
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation= true
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto= update
## MULTIPART (MultipartProperties)
# Enable multipart uploads
spring.servlet.multipart.enabled=true
# All files uploaded through the REST API will be stored in this directory
file.upload-dir=E:uploadedFilesOfMyProject
碼頭工人撰寫:
version: '3.1'
services:
API:
image: 'myJar.jar'
ports:
- "8080:8080"
depends_on:
PostgreSQL:
condition: service_healthy
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://PostgreSQL:5432/myDB
- SPRING_DATASOURCE_USERNAME=myusername
- SPRING_DATASOURCE_PASSWORD=mypassword
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
PostgreSQL:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=mypassword
- POSTGRES_USER=myusername
- POSTGRES_DB=myDB
healthcheck:
test: ["CMD-SHELL", "pg_isready -U myusername"]
interval: 10s
timeout: 5s
retries: 5
我在 application.properties 中設置了如下目錄,當我使用郵遞員上傳文件時,當項目由 docker-compose up 運行時,該文件夾中沒有保存任何內容
file.upload-dir=E:uploadedFilesOfMyProject
我在哪里做錯了? 我誤會了什么?
如果有人可以幫助我,我將不勝感激。
這是我使用的最后一個 docker-compose.yml 文件:我希望它也能幫助其他人:
version: "3.8"
services:
pg_db:
image: postgres
restart: always
volumes:
- "./postgres/data:/var/lib/postgresql/data"
ports:
- 5432:5432
environment:
POSTGRES_USER:
POSTGRES_PASSWORD:
POSTGRES_DB:
networks:
- product-net
api_service:
build: .
restart: always
ports:
- 8080:8080
depends_on:
- pg_db
networks:
- product-net
networks:
product-net:
driver: bridge
volumes:
pg_db:
driver: local
我認為您的問題是您必須在您的應用程序的作曲家文件中定義環境“uploadedFilesOfMyProject”。
問候,約瑟夫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.