add ca-certificates to docker image and add example
This commit is contained in:
		
							parent
							
								
									d70e70ab51
								
							
						
					
					
						commit
						a3cc82fc55
					
				|  | @ -38,6 +38,10 @@ EOF | ||||||
| # stage. | # stage. | ||||||
| FROM debian:bullseye-slim AS final | FROM debian:bullseye-slim AS final | ||||||
| 
 | 
 | ||||||
|  | # Install ca certificates | ||||||
|  | RUN apt-get update -y && \ | ||||||
|  |     apt-get install -y ca-certificates | ||||||
|  | 
 | ||||||
| # Create a non-privileged user that the app will run under. | # Create a non-privileged user that the app will run under. | ||||||
| # See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user | # See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user | ||||||
| ARG UID=10001 | ARG UID=10001 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,9 @@ Web scraper for the canteen of the University of Paderborn. | ||||||
| The following environment variables are available: | The following environment variables are available: | ||||||
| 
 | 
 | ||||||
| | Variable                 | Description                                                      | Default            | | | Variable                 | Description                                                      | Default            | | ||||||
| | ------------------------ | ---------------------------------------------------------------- | ----------- | | | ------------------------ | ---------------------------------------------------------------- | ------------------ | | ||||||
| | `API_INTERFACE`          | The interface the API should listen on.                          | `127.0.0.1`        | | | `API_INTERFACE`          | The interface the API should listen on.                          | `127.0.0.1`        | | ||||||
| | `API_PORT`               | The port the API should listen on.                               | `8080`             | | | `API_PORT`               | The port the API should listen on.                               | `8080`             | | ||||||
|  | | `API_CORS_ALLOWED`       | The allowed origins for CORS requests.                           | None, set manually | | ||||||
| | `API_RATE_LIMIT_SECONDS` | The time in seconds after which the rate limit should replenish. | `5`                | | | `API_RATE_LIMIT_SECONDS` | The time in seconds after which the rate limit should replenish. | `5`                | | ||||||
| | `API_RATE_LIMIT_BURST`   | The maximum number of requests that can be made in a burst.      | `5`                | | | `API_RATE_LIMIT_BURST`   | The maximum number of requests that can be made in a burst.      | `5`                | | ||||||
|  |  | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | <div id="mensa" style="width: 90%; margin-inline: auto"> | ||||||
|  |     <div id="main_dishes"></div> | ||||||
|  | </div> | ||||||
|  | <script type="text/javascript"> | ||||||
|  |     fetch("http://localhost:8080/menu/forum") | ||||||
|  |         .then((d) => d.json()) | ||||||
|  |         .then((menu) => { | ||||||
|  |             const main_dishes_container = /** @type {HTMLDivElement} */ (document.querySelector( | ||||||
|  |                 "#mensa #main_dishes" | ||||||
|  |             )); | ||||||
|  |             main_dishes_container.style.display = "grid"; | ||||||
|  |             main_dishes_container.style.gridTemplateColumns = "repeat(auto-fit, minmax(150px, 1fr))"; | ||||||
|  |             main_dishes_container.style.gridGap = "10px"; | ||||||
|  |             if ( | ||||||
|  |                 main_dishes_container != null && | ||||||
|  |                 menu != null && | ||||||
|  |                 menu.main_dishes != null | ||||||
|  |             ) { | ||||||
|  |                 for (let dish of menu.main_dishes) { | ||||||
|  |                     let dish_el = document.createElement("div"); | ||||||
|  |                     dish_el.classList.add("dish"); | ||||||
|  |                     dish_el.style.display = "flex"; | ||||||
|  |                     dish_el.style.flexDirection = "column"; | ||||||
|  |                     dish_el.style.alignItems = "center"; | ||||||
|  |                     let img_el = document.createElement("img"); | ||||||
|  |                     img_el.src = dish.image_src; | ||||||
|  |                     img_el.style.maxWidth = "80%"; | ||||||
|  |                     img_el.style.objectFit = "cover"; | ||||||
|  |                      | ||||||
|  |                     dish_el.appendChild(img_el); | ||||||
|  |                     let name_el = document.createElement("p"); | ||||||
|  |                     name_el.classList.add("dish-name"); | ||||||
|  |                     name_el.innerText = dish.name; | ||||||
|  |                     name_el.align = "center"; | ||||||
|  |                     dish_el.appendChild(name_el); | ||||||
|  |                     main_dishes_container.appendChild(dish_el); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | </script> | ||||||
		Loading…
	
		Reference in New Issue