mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
docker: add container build files and instructions (#22)
This adds: - a Dockerfile - a build script that injects some labels from git - an example nginx config for running the built webpack - instructions on how to run the container Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
7ea78b9e35
commit
c131e6fcf0
41
ui/Dockerfile
Normal file
41
ui/Dockerfile
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
FROM node:10-buster AS build
|
||||||
|
|
||||||
|
WORKDIR /build
|
||||||
|
|
||||||
|
RUN apt-get -y update && \
|
||||||
|
apt-get -y upgrade
|
||||||
|
|
||||||
|
COPY . /build/
|
||||||
|
RUN npm install
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM nginx:alpine AS runtime
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.title="CloudStack Primate" \
|
||||||
|
org.opencontainers.image.description="A modern role-based progressive CloudStack UI" \
|
||||||
|
org.opencontainers.image.authors="Apache CloudStack Contributors" \
|
||||||
|
org.opencontainers.image.url="https://github.com/apache/cloudstack-primate" \
|
||||||
|
org.opencontainers.image.documentation="https://github.com/apache/cloudstack-primate/README.md" \
|
||||||
|
org.opencontainers.image.source="https://github.com/apache/cloudstack-primate" \
|
||||||
|
org.opencontainers.image.vendor="The Apache Software Foundation" \
|
||||||
|
org.opencontainers.image.licenses="Apache-2.0" \
|
||||||
|
org.opencontainers.image.ref.name="latest"
|
||||||
|
|
||||||
|
COPY --from=build /build/dist/. /usr/share/nginx/html/
|
||||||
15
ui/README.md
15
ui/README.md
@ -88,6 +88,21 @@ server {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
A production-ready Docker container can also be built with the provided
|
||||||
|
Dockerfile and build script.
|
||||||
|
|
||||||
|
Make sure Docker is installed, then run build.sh:
|
||||||
|
|
||||||
|
./build.sh
|
||||||
|
|
||||||
|
Change the example configuration in `nginx/default.conf` according to your needs.
|
||||||
|
|
||||||
|
Run Primate:
|
||||||
|
|
||||||
|
docker run -ti --rm -p 8080:80 -v $(pwd)/nginx:/etc/nginx/conf.d:ro cloudstack-primate:latest
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
### Learning Resources
|
### Learning Resources
|
||||||
|
|||||||
31
ui/build.sh
Executable file
31
ui/build.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
GIT_TAG="$(git tag --points-at | head -n 1)"
|
||||||
|
if [ -n "${GIT_REV}" ]; then
|
||||||
|
LABEL_GIT_TAG="--label \"org.opencontainers.image.version=${GIT_TAG}\""
|
||||||
|
fi
|
||||||
|
DATE="$(date --iso-8601=seconds)"
|
||||||
|
LABEL_DATE="--label \"org.opencontainers.image.created=${DATE}\""
|
||||||
|
GIT_REV="$(git rev-parse HEAD)"
|
||||||
|
LABEL_GIT_REV="--label \"org.opencontainers.image.revision=${GIT_REV}\""
|
||||||
|
|
||||||
|
docker build -t cloudstack-primate ${LABEL_DATE} ${LABEL_GIT_REV} ${LABEL_GIT_TAG} .
|
||||||
30
ui/nginx/default.conf
Normal file
30
ui/nginx/default.conf
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html;
|
||||||
|
}
|
||||||
|
location /client/ {
|
||||||
|
# http://127.0.0.1:8080 should be replaced your CloudStack management
|
||||||
|
# Server's actual URI
|
||||||
|
proxy_pass http://127.0.0.1:8080;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user