Added docker support
This commit is contained in:
parent
ccc5337dc1
commit
113f0c647b
5 changed files with 77 additions and 1 deletions
21
README.md
Normal file
21
README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# Container Dashboard
|
||||
A simple dashboard for turning your docker/kubernetes services (containers/pods) on or off from a web UI
|
||||
|
||||
## Usage
|
||||
First build the docker images under `frontend` and `backend`
|
||||
|
||||
`docker build -t container-dashboard-frontend ./frontend`
|
||||
|
||||
`docker build -t container-dashboard-backend ./backend`
|
||||
|
||||
### Frontend
|
||||
Run the frontend with `docker run -d -p 80:80 BACKEND=\<url to backend\> container-dashboard-frontend:latest`.
|
||||
|
||||
`BACKEND` points towards the backend container and looks something like this: `http(s)://123.123.123:8080`
|
||||
|
||||
### Backend
|
||||
Run the backend with `docker run -d -p 8080:8080 -e BACKEND=<docker | kubernetes> -e KUBECONFIG=<path to kube config file> -v /path/to/kube-config:/app/kube-config container-dashboard-backend:latest`
|
||||
|
||||
The environment variable `KUBECONFIG` and the mounted kubernetes config folder are only needed if you are using kubernetes.
|
||||
|
||||
Docker backend has not been implemented yet. Feel free to contribute ^w^
|
||||
28
backend/Dockerfile
Normal file
28
backend/Dockerfile
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS backend-build
|
||||
|
||||
WORKDIR /app/backend
|
||||
|
||||
# Copy backend files
|
||||
COPY ./*.csproj ./
|
||||
RUN dotnet restore
|
||||
|
||||
COPY ./ ./
|
||||
RUN dotnet publish -c Release -o out
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy backend build output
|
||||
COPY --from=backend-build /app/backend/out ./backend
|
||||
|
||||
# Create a directory for the Kubernetes configuration file
|
||||
RUN mkdir -p /app/kube-config
|
||||
|
||||
# Set an environment variable to point to the Kubernetes config directory
|
||||
ENV KUBECONFIG=/app/kube-config/config
|
||||
ENV BACKEND=kubernetes
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["sh", "-c", "dotnet backend/backend.dll"]
|
||||
22
frontend/Dockerfile
Normal file
22
frontend/Dockerfile
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
FROM node:18 AS frontend-build
|
||||
|
||||
WORKDIR /app/frontend
|
||||
|
||||
COPY ./package.json ./package-lock.json ./
|
||||
RUN npm install
|
||||
|
||||
COPY ./ ./
|
||||
RUN npm run build
|
||||
|
||||
FROM nginx:stable AS runtime
|
||||
|
||||
WORKDIR /usr/share/nginx/html
|
||||
|
||||
COPY --from=frontend-build /app/frontend/dist .
|
||||
COPY ./envVars.sh /docker-entrypoint.d/
|
||||
|
||||
RUN chmod +x /docker-entrypoint.d/envVars.sh
|
||||
|
||||
ENV BACKEND=
|
||||
|
||||
EXPOSE 80
|
||||
5
frontend/envVars.sh
Executable file
5
frontend/envVars.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
SETTINGFILE=`find /usr/share/nginx/html/_astro/ -name 'CardList.*.js'`
|
||||
|
||||
echo "Setting backend in $SETTINGFILE to $BACKEND"
|
||||
|
||||
sed -i "s#ENDPOINT#$BACKEND#g" $SETTINGFILE
|
||||
|
|
@ -3,5 +3,5 @@ export interface ConfigType {
|
|||
}
|
||||
|
||||
export const Config: ConfigType = {
|
||||
endpoint: "http://localhost:5107/Service",
|
||||
endpoint: "ENDPOINT/Service",
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue