tools/docker: Upgrade to ubuntu 20.04 , MySQL 8 and python3 (#5507)

* tools/docker: Upgrade to ubuntu 20.04 , MySQL 8 and python3

* Update tools/docker/README.md

* docker simulator: run 'npm rebuild node-sass' before 'npm install'
This commit is contained in:
Wei Zhou 2021-09-24 13:47:27 +02:00 committed by GitHub
parent d1f375f35a
commit 06f602c7df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 9 deletions

View File

@ -17,7 +17,7 @@
# #
# CloudStack-simulator build # CloudStack-simulator build
FROM ubuntu:18.04 FROM ubuntu:20.04
MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org> MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
LABEL Vendor="Apache.org" License="ApacheV2" Version="4.16.0.0-SNAPSHOT" LABEL Vendor="Apache.org" License="ApacheV2" Version="4.16.0.0-SNAPSHOT"
@ -28,16 +28,19 @@ RUN apt-get -y update && apt-get install -y \
genisoimage \ genisoimage \
libffi-dev \ libffi-dev \
libssl-dev \ libssl-dev \
curl \
gcc-10 \
git \ git \
sudo \ sudo \
ipmitool \ ipmitool \
iproute2 \ iproute2 \
maven \ maven \
openjdk-11-jdk \ openjdk-11-jdk \
python-dev \ python3-dev \
python-setuptools \ python-is-python3 \
python-pip \ python3-setuptools \
python-mysql.connector \ python3-pip \
python3-mysql.connector \
supervisor supervisor
RUN apt-get install -qqy mysql-server && \ RUN apt-get install -qqy mysql-server && \
@ -45,7 +48,7 @@ RUN apt-get install -qqy mysql-server && \
mkdir /var/run/mysqld; \ mkdir /var/run/mysqld; \
chown mysql /var/run/mysqld chown mysql /var/run/mysqld
RUN echo '''sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"''' >> /etc/mysql/mysql.conf.d/mysqld.cnf RUN echo '''sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"''' >> /etc/mysql/mysql.conf.d/mysqld.cnf
COPY tools/docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY tools/docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY . ./root COPY . ./root
@ -60,10 +63,16 @@ RUN find /var/lib/mysql -type f -exec touch {} \; && \
mvn -Pdeveloper -pl developer -Ddeploydb; \ mvn -Pdeveloper -pl developer -Ddeploydb; \
mvn -Pdeveloper -pl developer -Ddeploydb-simulator; \ mvn -Pdeveloper -pl developer -Ddeploydb-simulator; \
MARVIN_FILE=`find /root/tools/marvin/dist/ -name "Marvin*.tar.gz"`; \ MARVIN_FILE=`find /root/tools/marvin/dist/ -name "Marvin*.tar.gz"`; \
pip install $MARVIN_FILE rm -rf /usr/bin/x86_64-linux-gnu-gcc && \
ln -s /usr/bin/gcc-10 /usr/bin/x86_64-linux-gnu-gcc; \
pip3 install $MARVIN_FILE
RUN curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -; \
apt-get install -y nodejs; \
cd ui && npm rebuild node-sass && npm install
VOLUME /var/lib/mysql VOLUME /var/lib/mysql
EXPOSE 8080 8096 EXPOSE 8080 8096 5050
CMD ["/usr/bin/supervisord"] CMD ["/usr/bin/supervisord"]

View File

@ -12,7 +12,30 @@ CloudStack Simulator is an all in one CloudStack Build including the simulator t
``` ```
docker pull cloudstack/simulator docker pull cloudstack/simulator
docker run --name simulator -p 8080:8080 -d cloudstack/simulator docker run --name simulator -p 8080:5050 -d cloudstack/simulator
```
Access CloudStack UI
```
Open your browser at http://localhost:8080/
Default login is admin:password
```
Deploy a datacenter:
```
# Advanced zone
docker exec -it simulator python /root/tools/marvin/marvin/deployDataCenter.py -i /root/setup/dev/advanced.cfg
# Advanced zone with security groups
docker exec -it simulator python /root/tools/marvin/marvin/deployDataCenter.py -i /root/setup/dev/advancedsg.cfg
# Basic zone
docker exec -it simulator python /root/tools/marvin/marvin/deployDataCenter.py -i /root/setup/dev/basic.cfg
```
Log into the simulator:
```
docker exec -it simulator bash
``` ```
### CloudStack Management-server ### CloudStack Management-server

View File

@ -13,3 +13,10 @@ directory=/root
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
user=root user=root
[program:cloudstack-ui]
command=/bin/bash -c "npm run serve"
directory=/root/ui
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
user=root