cross-posted from: https://lemm.ee/post/12034711
Hello Lemmy,
I have to grade student work. Students who have made their first springboot applications. I'm wary for idiots who don't understand anything about java, yet somehow manage to include code that wipes my entire User folder, so I run the projects in docker these days.
One criterium is that they include a upload/download functionality. Some students decide to do that by storing the files in the DB, other store it in an "uploads" folder.
The first one works fine in docker. The second one not so much. The java code refers to a path "sourceroot/uploads", but that doesn't exist in the docker container. How can I make it exist in the docker container?
This is the DOCKERFILE I use to
docker build -t image .
FROM eclipse-temurin:17-jdk-alpine VOLUME /tmp EXPOSE 8080 EXPOSE 5432 COPY target/*.jar application.jar ENTRYPOINT ["java", "-jar", "application.jar"]
This is the yaml I use to run
docker compose up -d
version: '2' services: app: image: 'image' ports: - "8080:8080" container_name: app depends_on: db: condition: service_healthy environment: - SERVER.PORT=8080 - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/testing - SPRING_DATASOURCE_USERNAME=postgres - SPRING_DATASOURCE_PASSWORD=postgres - SPRING_JPA_HIBERNATE_DDL_AUTO=create-drop db: image: 'postgres:13.1-alpine' ports: - "5432:5432" expose: - "5432" container_name: db environment: - POSTGRES_USER=postgres - POSTGRES_HOST_AUTH_METHOD=trust - POSTGRES_DB=testing healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 networks: default: name: docker
I'm sorry if this code offends anybody. I've made this Frankenstein's monster myself from bits and pieces. However, I can't seem to figure out how to add a working "uploads folder" to it that could be used by the springboot application inside the container. Any help would be appreciated.
Try adding
app.volumes
to the yamlThank you so much, this works perfectly! I'd been trying things with volumes, but never thought to add it to the "app" service XD