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.

  • abbadon420@lemm.eeOP
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    Thank you so much, this works perfectly! I’d been trying things with volumes, but never thought to add it to the “app” service XD