![](/img/trans.png)
[英]How to access Oracle AWS RDS through JDBC from Docker Container with Spring boot application hosted on Tomcat
[英]How to load static files with spring boot inside a docker container hosted on AWS?
我的 SpringBoot 應用程序在 docker 容器中運行,該容器由 Dockerfile 構建並托管在 AWS ubuntu 實例上。 一切正常,除了我有一個圖像、一個 css 文件和一個無法加載的 js 文件。 檢查頁面后,這些文件顯示 404 not found 錯誤。 我已經使用 winscp 將我的文件上傳到我的 aws 實例。 在 myApp 文件夾中是我的 docker 文件所在的位置以及我構建容器的位置。
目錄結構為:
myApp
-Dockerfile
-target
-myApp.jar
-src
-main
-java
-[all my code in respective subdirectories]
-resources
-static
-my.js
-my.css
-my.jpg
-templates
-folder1
-html
-html2
-folder2
-html
-html2
我幾乎可以肯定我的問題在於 docker 容器和我的 dockerfile。
Spring 引導自動在 /src/main/resources/static 中查找 static 文件。 我在想我的 docker 容器沒有這個文件結構。
這是我的 Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y openjdk-14-jdk
WORKDIR /usr/local/bin/myApp
ADD . /src/main/resources/static
ADD target/myapp.jar .
ENTRYPOINT ["java", "-jar", "myApp.jar"]
當我構建容器時,它顯示成功復制和構建的所有內容,但未訪問文件。 對我來說奇怪的是 spring 引導正在提供 static 文件夾中的正確模板。 我對此完全不知所措。 我嘗試從 dockerfile 單獨添加資源,但仍然沒有運氣。
您正在設置WORKDIR
,然后使用相對路徑將.jar
復制到該位置,但是當您復制其他內容( /src/main/resources/static
)時,您使用的是完全破壞文件夾結構的絕對路徑(因為這些文件不會復制到您的WORKDIR
引用的文件夾中)。 你可能已經忘記了.
(點)在該路徑前面 - ./src/main/resources/static
。
運行docker exec -it <image-id> bash
以訪問您正在運行的容器並查看復制的內容,如果您不確定,修復 Z3254677A7917C6C01F55212F86C7 中的內容應該很容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.