mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 01:32:18 +02: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
|
||||
|
||||
### 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