mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			143 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# 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
 | 
						|
 | 
						|
MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
 | 
						|
LABEL Vendor="Apache.org" License="ApacheV2" Version="4.12.0-SNAPSHOT"
 | 
						|
 | 
						|
RUN apt-get -y update && apt-get install -y \
 | 
						|
    genisoimage \
 | 
						|
    libffi-dev \
 | 
						|
    libssl-dev \
 | 
						|
    git \
 | 
						|
    sudo \
 | 
						|
    ipmitool \
 | 
						|
    maven \
 | 
						|
    openjdk-8-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/selenium /root/test/selenium
 | 
						|
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
 | 
						|
# |