# 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. # # CloudStack-simulator build FROM ubuntu:16.04 LABEL Vendor="Apache.org" License="ApacheV2" Version="4.20.0-SNAPSHOT" Author="Apache CloudStack " RUN apt-get -y update && apt-get install -y \ genisoimage \ libffi-dev \ libssl-dev \ git \ sudo \ ipmitool \ maven \ openjdk-11-jdk \ python-dev \ python-setuptools \ python-pip \ python-mysql.connector \ supervisor \ python-crypto \ python-openssl RUN echo 'mysql-server mysql-server/root_password password root' | debconf-set-selections; \ echo 'mysql-server mysql-server/root_password_again password root' | debconf-set-selections; RUN apt-get install -qqy mysql-server && \ apt-get clean all && \ mkdir /var/run/mysqld; \ chown mysql /var/run/mysqld # # this package is needed if one wants to run marvin tests from # inside the running simulator. # RUN pip install pyOpenSSL 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 (/usr/bin/mysqld_safe &); sleep 5; mysqladmin -u root -proot password '' COPY agent /root/agent COPY api /root/api COPY build /root/build COPY client /root/client COPY cloud-cli /root/cloud-cli COPY cloudstack.iml /root/cloudstack.iml COPY core /root/core COPY debian /root/debian COPY deps /root/deps COPY developer /root/developer COPY engine /root/engine COPY framework /root/framework COPY LICENSE.header /root/LICENSE.header COPY LICENSE /root/LICENSE COPY maven-standard /root/maven-standard COPY NOTICE /root/NOTICE COPY packaging /root/packaging COPY plugins /root/plugins COPY pom.xml /root/pom.xml COPY python /root/python COPY quickcloud /root/quickcloud COPY requirements.txt /root/requirements.txt COPY scripts /root/scripts COPY server /root/server COPY services /root/services COPY setup /root/setup COPY systemvm /root/systemvm COPY target /root/target COPY test/bindirbak /root/test/bindirbak COPY test/conf /root/test/conf COPY test/metadata /root/test/metadata COPY test/pom.xml /root/test/pom.xml COPY test/scripts /root/test/scripts COPY test/systemvm /root/test/systemvm COPY test/target /root/test/target COPY tools/pom.xml /root/tools/pom.xml COPY tools/apidoc /root/tools/apidoc COPY tools/checkstyle /root/tools/checkstyle COPY tools/devcloud4/pom.xml /root/tools/devcloud4/pom.xml COPY tools/devcloud-kvm/pom.xml /root/tools/devcloud-kvm/pom.xml COPY tools/marvin/pom.xml /root/tools/marvin/pom.xml COPY tools/pom.xml /root/tools/pom.xml COPY ui /root/ui COPY usage /root/usage COPY utils /root/utils COPY vmware-base /root/vmware-base RUN cd /root && mvn -Pdeveloper -Dsimulator -DskipTests -pl "!:cloud-marvin" install RUN (/usr/bin/mysqld_safe &) && \ sleep 5 && \ cd /root && \ mvn -Pdeveloper -pl developer -Ddeploydb && \ mvn -Pdeveloper -pl developer -Ddeploydb-simulator COPY tools/marvin /root/tools/marvin COPY tools/docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY tools/docker/docker_run_tests.sh /root RUN cd /root && mvn -Pdeveloper -Dsimulator -DskipTests -pl ":cloud-marvin" RUN MARVIN_FILE=`find /root/tools/marvin/dist/ -name "Marvin*.tar.gz"` && pip install $MARVIN_FILE COPY test/integration /root/test/integration COPY tools /root/tools RUN pip install --upgrade pyOpenSSL EXPOSE 8080 8096 WORKDIR /root CMD ["/usr/bin/supervisord"] # -------------------------------- # # docker run -v ~/dev/tmp:/tmp -v ~/IdeaProjects/cloudstack/test/integration/smoke:/root/test/integration/smoke -it # --name simulator -p 8080:8080 -p8096:8096 simulator:4.12 # # docker exec -it simulator bash # # cat /root/docker_run_tests.sh # for instructions #