lundi 6 février 2017
mercredi 28 décembre 2016
Send hipchat notification from Jenkins pipeline
Introduction :
For a few months I have been working on automating the deployment of web executables on docker containers hosted on AMAZON AWS, and I have added a hipchat notification to each deployment.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@NonCPS | |
def notify(message, color) { | |
//HipChatV1Service(String server, String token, String roomIds, String sendAs) | |
def hipChatV1 = new jenkins.plugins.hipchat.impl.HipChatV1Service("api.hipchat.com", "token", "roomIds", "Jenkins"); | |
hipChatV1.publish(message, color, /*notify?*/true); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
notify("SUCCESSFUL: Job 'JOB_NAME Build number [${env.BUILD_NUMBER}] TO AMAZON AWS", "green") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
notify("FAILED: Job 'JOB_NAME Build number [${env.BUILD_NUMBER}] TO AMAZON AWS", "red") | |
mardi 27 décembre 2016
Docker : how to create Wildfly and MySQL in the same server
Introduction :
I continue with the exploration of the docker world. After wildfly container creation, i will add a MySQL RDMBS, for this you have the choice between the creation of two Dockerfile document and execute the build and the run of servers, or, write in once only one document and specify the environnement document in the whole.
Let's code now the first choice :
the Dockerfile for Wildfly
The wildfly dockerfile file mentions several other files such as standalone-mjhazbri.xml and module-mysql.xm. The file start-wildfly.sh will be used to start the server wildfly :
The Dockerfile of MySQL :
The MySQL dockerfile file mentions several other files such as my.cnf and run.sh :
the second choice will be explained in other article.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM jboss/wildfly:9.0.2.Final | |
MAINTAINER Jalel HAZBRI "jalel.hazbri@gmail.com" | |
# ENV VARIABLES | |
ENV WILDFLY_HOME /opt/jboss/wildfly | |
ENV WILDFLY_VERSION 9.0.2.Final | |
ENV MYSQL_HOST 127.0.0.1:3306 | |
ENV MYSQL_USER mjhazbri | |
ENV MYSQL_PASSWORD mjhazbri | |
ENV MYSQL_DATABASE mjhazbri | |
# Add standalone xml file | |
COPY standalone-mjhazbri.xml ${WILDFLY_HOME}/standalone/configuration/standalone-mjhazbri.xml | |
# Get MySQL driver | |
ADD https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar ${WILDFLY_HOME}/modules/com/mysql/jdbc/main/mysql-connector-java-5.1.39-bin.jar | |
# MYSQL JDBC Module | |
COPY module-mysql.xml ${WILDFLY_HOME}/modules/com/mysql/jdbc/main/module.xml | |
# Add console admin user | |
RUN ${WILDFLY_HOME}/bin/add-user.sh mjhazbri mjhazbri --silent | |
# Ports | |
EXPOSE 8080 9990 | |
# Volumes | |
VOLUME ${WILDFLY_HOME}/standalone/deployments/ | |
VOLUME ${WILDFLY_HOME}/standalone/log/ | |
# RUN script | |
COPY start-wildfly.sh ${WILDFLY_HOME}/bin/start-wildfly.sh | |
USER root | |
RUN chmod +x ${WILDFLY_HOME}/bin/start-wildfly.sh | |
#USER jboss | |
ENTRYPOINT ["sh", "-c", "${WILDFLY_HOME}/bin/start-wildfly.sh"] |
The wildfly dockerfile file mentions several other files such as standalone-mjhazbri.xml and module-mysql.xm. The file start-wildfly.sh will be used to start the server wildfly :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<module xmlns="urn:jboss:module:1.3" name="com.mysql.jdbc"> | |
<resources> | |
<resource-root path="mysql-connector-java-5.1.39-bin.jar" /> | |
</resources> | |
<dependencies> | |
<module name="javax.api" /> | |
<module name="javax.transaction.api" /> | |
</dependencies> | |
</module> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version='1.0' encoding='UTF-8'?> | |
<server xmlns="urn:jboss:domain:3.0"> | |
<extensions> | |
<extension module="org.jboss.as.clustering.infinispan"/> | |
<extension module="org.jboss.as.connector"/> | |
<extension module="org.jboss.as.deployment-scanner"/> | |
<extension module="org.jboss.as.ee"/> | |
<extension module="org.jboss.as.ejb3"/> | |
<extension module="org.jboss.as.jaxrs"/> | |
<extension module="org.jboss.as.jdr"/> | |
<extension module="org.jboss.as.jmx"/> | |
<extension module="org.jboss.as.jpa"/> | |
<extension module="org.jboss.as.jsf"/> | |
<extension module="org.jboss.as.logging"/> | |
<extension module="org.jboss.as.mail"/> | |
<extension module="org.jboss.as.naming"/> | |
<extension module="org.jboss.as.pojo"/> | |
<extension module="org.jboss.as.remoting"/> | |
<extension module="org.jboss.as.sar"/> | |
<extension module="org.jboss.as.security"/> | |
<extension module="org.jboss.as.transactions"/> | |
<extension module="org.jboss.as.webservices"/> | |
<extension module="org.jboss.as.weld"/> | |
<extension module="org.wildfly.extension.batch"/> | |
<extension module="org.wildfly.extension.bean-validation"/> | |
<extension module="org.wildfly.extension.io"/> | |
<extension module="org.wildfly.extension.request-controller"/> | |
<extension module="org.wildfly.extension.security.manager"/> | |
<extension module="org.wildfly.extension.undertow"/> | |
</extensions> | |
<management> | |
<security-realms> | |
<security-realm name="ManagementRealm"> | |
<authentication> | |
<local default-user="$local" skip-group-loading="true"/> | |
<properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> | |
</authentication> | |
<authorization map-groups-to-roles="false"> | |
<properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> | |
</authorization> | |
</security-realm> | |
<security-realm name="ApplicationRealm"> | |
<authentication> | |
<local default-user="$local" allowed-users="*" skip-group-loading="true"/> | |
<properties path="application-users.properties" relative-to="jboss.server.config.dir"/> | |
</authentication> | |
<authorization> | |
<properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> | |
</authorization> | |
</security-realm> | |
</security-realms> | |
<audit-log> | |
<formatters> | |
<json-formatter name="json-formatter"/> | |
</formatters> | |
<handlers> | |
<file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> | |
</handlers> | |
<logger log-boot="true" log-read-only="false" enabled="false"> | |
<handlers> | |
<handler name="file"/> | |
</handlers> | |
</logger> | |
</audit-log> | |
<management-interfaces> | |
<http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> | |
<socket-binding http="management-http"/> | |
</http-interface> | |
</management-interfaces> | |
<access-control provider="simple"> | |
<role-mapping> | |
<role name="SuperUser"> | |
<include> | |
<user name="$local"/> | |
</include> | |
</role> | |
<role name="Deployer"> | |
<include> | |
<user name="deployman"/> | |
</include> | |
</role> | |
</role-mapping> | |
</access-control> | |
</management> | |
<profile> | |
<subsystem xmlns="urn:jboss:domain:logging:3.0"> | |
<console-handler name="CONSOLE"> | |
<level name="INFO"/> | |
<formatter> | |
<named-formatter name="COLOR-PATTERN"/> | |
</formatter> | |
</console-handler> | |
<size-rotating-file-handler name="FILE" autoflush="true"> | |
<formatter> | |
<named-formatter name="PATTERN"/> | |
</formatter> | |
<file relative-to="jboss.server.log.dir" path="server.log"/> | |
<rotate-size value="10m"/> | |
<max-backup-index value="10"/> | |
<append value="true"/> | |
<suffix value=".yyyy-MM-dd"/> | |
</size-rotating-file-handler> | |
<logger category="com.arjuna"> | |
<level name="WARN"/> | |
</logger> | |
<logger category="org.apache.tomcat.util.modeler"> | |
<level name="WARN"/> | |
</logger> | |
<logger category="org.jboss.as.config"> | |
<level name="DEBUG"/> | |
</logger> | |
<logger category="sun.rmi"> | |
<level name="WARN"/> | |
</logger> | |
<logger category="jacorb"> | |
<level name="WARN"/> | |
</logger> | |
<logger category="jacorb.config"> | |
<level name="ERROR"/> | |
</logger> | |
<logger category="org.mongodb.driver" use-parent-handlers="false"> | |
<level name="INFO"/> | |
</logger> | |
<logger category="org.hibernate" use-parent-handlers="false"> | |
<level name="INFO"/> | |
</logger> | |
<root-logger> | |
<level name="INFO"/> | |
<handlers> | |
<handler name="CONSOLE"/> | |
<handler name="FILE"/> | |
</handlers> | |
</root-logger> | |
<formatter name="PATTERN"> | |
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> | |
</formatter> | |
<formatter name="COLOR-PATTERN"> | |
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> | |
</formatter> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:batch:1.0"> | |
<job-repository> | |
<in-memory/> | |
</job-repository> | |
<thread-pool> | |
<max-threads count="10"/> | |
<keepalive-time time="30" unit="seconds"/> | |
</thread-pool> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:datasources:3.0"> | |
<datasources> | |
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> | |
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> | |
<driver>h2</driver> | |
<security> | |
<user-name>sa</user-name> | |
<password>sa</password> | |
</security> | |
</datasource> | |
<datasource jndi-name="java:jboss/datasources/mjhazbriDS" | |
pool-name="ContactsDS" enabled="true" use-java-context="true"> | |
<connection-url>jdbc:mysql://${mysql.host}/${mysql.database}</connection-url> | |
<driver>mysql</driver> | |
<security> | |
<user-name>${mysql.username}</user-name> | |
<password>${mysql.password}</password> | |
</security> | |
</datasource> | |
<drivers> | |
<driver name="h2" module="com.h2database.h2"> | |
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> | |
</driver> | |
<driver name="mysql" module="com.mysql.jdbc"> | |
<driver-class>com.mysql.jdbc.Driver</driver-class> | |
</driver> | |
</drivers> | |
</datasources> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> | |
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:ee:3.0"> | |
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> | |
<concurrent> | |
<context-services> | |
<context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/> | |
</context-services> | |
<managed-thread-factories> | |
<managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/> | |
</managed-thread-factories> | |
<managed-executor-services> | |
<managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" core-threads="5" max-threads="25" keepalive-time="5000"/> | |
</managed-executor-services> | |
<managed-scheduled-executor-services> | |
<managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" core-threads="2" keepalive-time="3000"/> | |
</managed-scheduled-executor-services> | |
</concurrent> | |
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:ejb3:3.0"> | |
<session-bean> | |
<stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/> | |
<singleton default-access-timeout="5000"/> | |
</session-bean> | |
<pools> | |
<bean-instance-pools> | |
<strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> | |
<strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> | |
</bean-instance-pools> | |
</pools> | |
<caches> | |
<cache name="simple"/> | |
<cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/> | |
</caches> | |
<passivation-stores> | |
<passivation-store name="infinispan" cache-container="ejb" max-size="10000"/> | |
</passivation-stores> | |
<async thread-pool-name="default"/> | |
<timer-service thread-pool-name="default" default-data-store="default-file-store"> | |
<data-stores> | |
<file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/> | |
</data-stores> | |
</timer-service> | |
<remote connector-ref="http-remoting-connector" thread-pool-name="default"/> | |
<thread-pools> | |
<thread-pool name="default"> | |
<max-threads count="10"/> | |
<keepalive-time time="100" unit="milliseconds"/> | |
</thread-pool> | |
</thread-pools> | |
<default-security-domain value="other"/> | |
<default-missing-method-permissions-deny-access value="true"/> | |
<log-system-exceptions value="true"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:io:1.1"> | |
<worker name="default"/> | |
<buffer-pool name="default"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:infinispan:3.0"> | |
<cache-container name="server" default-cache="default" module="org.wildfly.clustering.server"> | |
<local-cache name="default"> | |
<transaction mode="BATCH"/> | |
</local-cache> | |
</cache-container> | |
<cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan"> | |
<local-cache name="passivation"> | |
<locking isolation="REPEATABLE_READ"/> | |
<transaction mode="BATCH"/> | |
<file-store passivation="true" purge="false"/> | |
</local-cache> | |
<local-cache name="persistent"> | |
<locking isolation="REPEATABLE_READ"/> | |
<transaction mode="BATCH"/> | |
<file-store passivation="false" purge="false"/> | |
</local-cache> | |
</cache-container> | |
<cache-container name="ejb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan" aliases="sfsb"> | |
<local-cache name="passivation"> | |
<locking isolation="REPEATABLE_READ"/> | |
<transaction mode="BATCH"/> | |
<file-store passivation="true" purge="false"/> | |
</local-cache> | |
<local-cache name="persistent"> | |
<locking isolation="REPEATABLE_READ"/> | |
<transaction mode="BATCH"/> | |
<file-store passivation="false" purge="false"/> | |
</local-cache> | |
</cache-container> | |
<cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan"> | |
<local-cache name="local-query"> | |
<eviction strategy="LRU" max-entries="10000"/> | |
<expiration max-idle="100000"/> | |
</local-cache> | |
<local-cache name="entity"> | |
<transaction mode="NON_XA"/> | |
<eviction strategy="LRU" max-entries="10000"/> | |
<expiration max-idle="100000"/> | |
</local-cache> | |
<local-cache name="timestamps"/> | |
</cache-container> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:jca:3.0"> | |
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> | |
<bean-validation enabled="true"/> | |
<default-workmanager> | |
<short-running-threads> | |
<core-threads count="50"/> | |
<queue-length count="50"/> | |
<max-threads count="50"/> | |
<keepalive-time time="10" unit="seconds"/> | |
</short-running-threads> | |
<long-running-threads> | |
<core-threads count="50"/> | |
<queue-length count="50"/> | |
<max-threads count="50"/> | |
<keepalive-time time="10" unit="seconds"/> | |
</long-running-threads> | |
</default-workmanager> | |
<cached-connection-manager/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:jdr:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:jmx:1.3"> | |
<expose-resolved-model/> | |
<expose-expression-model/> | |
<remoting-connector/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:jpa:1.1"> | |
<jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:jsf:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:mail:2.0"> | |
<mail-session name="default" jndi-name="java:jboss/mail/Default"> | |
<smtp-server outbound-socket-binding-ref="mail-smtp"/> | |
</mail-session> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:naming:2.0"> | |
<remote-naming/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:remoting:3.0"> | |
<endpoint worker="default"/> | |
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:resource-adapters:3.0"/> | |
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:sar:1.0"/> | |
<subsystem xmlns="urn:jboss:domain:security-manager:1.0"> | |
<deployment-permissions> | |
<maximum-set> | |
<permission class="java.security.AllPermission"/> | |
</maximum-set> | |
</deployment-permissions> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:security:1.2"> | |
<security-domains> | |
<security-domain name="other" cache-type="default"> | |
<authentication> | |
<login-module code="Remoting" flag="optional"> | |
<module-option name="password-stacking" value="useFirstPass"/> | |
</login-module> | |
<login-module code="RealmDirect" flag="required"> | |
<module-option name="password-stacking" value="useFirstPass"/> | |
</login-module> | |
</authentication> | |
</security-domain> | |
<security-domain name="jboss-web-policy" cache-type="default"> | |
<authorization> | |
<policy-module code="Delegating" flag="required"/> | |
</authorization> | |
</security-domain> | |
<security-domain name="jboss-ejb-policy" cache-type="default"> | |
<authorization> | |
<policy-module code="Delegating" flag="required"/> | |
</authorization> | |
</security-domain> | |
</security-domains> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:transactions:3.0"> | |
<core-environment> | |
<process-id> | |
<uuid/> | |
</process-id> | |
</core-environment> | |
<recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:undertow:2.0"> | |
<buffer-cache name="default"/> | |
<server name="default-server"> | |
<http-listener name="default" socket-binding="http" redirect-socket="https" max-post-size="100000000"/> | |
<host name="default-host" alias="localhost"> | |
<location name="/" handler="welcome-content"/> | |
<filter-ref name="server-header"/> | |
<filter-ref name="x-powered-by-header"/> | |
</host> | |
</server> | |
<servlet-container name="default" allow-non-standard-wrappers="true"> | |
<jsp-config/> | |
<websockets/> | |
</servlet-container> | |
<handlers> | |
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> | |
</handlers> | |
<filters> | |
<response-header name="server-header" header-name="Server" header-value="WildFly/9"/> | |
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> | |
</filters> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:webservices:2.0"> | |
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> | |
<endpoint-config name="Standard-Endpoint-Config"/> | |
<endpoint-config name="Recording-Endpoint-Config"> | |
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> | |
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> | |
</pre-handler-chain> | |
</endpoint-config> | |
<client-config name="Standard-Client-Config"/> | |
</subsystem> | |
<subsystem xmlns="urn:jboss:domain:weld:2.0"/> | |
</profile> | |
<interfaces> | |
<interface name="management"> | |
<any-address/> | |
</interface> | |
<interface name="public"> | |
<any-address/> | |
</interface> | |
<interface name="unsecure"> | |
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> | |
</interface> | |
</interfaces> | |
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> | |
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> | |
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> | |
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> | |
<socket-binding name="http" port="${jboss.http.port:8080}"/> | |
<socket-binding name="https" port="${jboss.https.port:8443}"/> | |
<socket-binding name="txn-recovery-environment" port="4712"/> | |
<socket-binding name="txn-status-manager" port="4713"/> | |
</socket-binding-group> | |
</server> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
${WILDFLY_HOME}/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 -c standalone-mjhabzri.xml \ | |
-Dmysql.host=${MYSQL_HOST} -Dmysql.username=${MYSQL_USER} -Dmysql.password=${MYSQL_PASSWORD} -Dmysql.database=${MYSQL_DATABASE}\ |
The Dockerfile of MySQL :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:trusty | |
MAINTAINER Jalel Hazbri "jalel.hazbri@gmail.com" | |
ENV MYSQL_USER=mjhazbri | |
ENV MYSQL_PASSWORD=mjhazbri | |
ENV MYSQL_DATABASE=mjhazbri | |
# Install packages: mysql adds a root user with no password | |
ENV DEBIAN_FRONTEND noninteractive | |
RUN apt-get update && \ | |
apt-get -yq install mysql-server && \ | |
rm -rf /var/lib/apt/lists/* | |
# Change mysql config | |
ADD my.cnf /etc/mysql/my.cnf | |
# setup our entry point | |
ADD run.sh /run.sh | |
RUN chmod 755 /*.sh | |
# Add VOLUMEs to allow backup of config and databases | |
VOLUME ["/etc/mysql", "/var/lib/mysql"] | |
#ENTRYPOINT ["/run.sh"] | |
EXPOSE 3306 | |
CMD ["/run.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# The MySQL database server configuration file. | |
# | |
# You can copy this to one of: | |
# - "/etc/mysql/my.cnf" to set global options, | |
# - "~/.my.cnf" to set user-specific options. | |
# | |
# One can use all long options that the program supports. | |
# Run program with --help to get a list of available options and with | |
# --print-defaults to see which it would actually understand and use. | |
# | |
# For explanations see | |
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html | |
# This will be passed to all mysql clients | |
# It has been reported that passwords should be enclosed with ticks/quotes | |
# escpecially if they contain "#" chars... | |
# Remember to edit /etc/mysql/debian.cnf when changing the socket location. | |
[client] | |
port = 3306 | |
socket = /var/run/mysqld/mysqld.sock | |
# Here is entries for some specific programs | |
# The following values assume you have at least 32M ram | |
# This was formally known as [safe_mysqld]. Both versions are currently parsed. | |
[mysqld_safe] | |
socket = /var/run/mysqld/mysqld.sock | |
nice = 0 | |
[mysqld] | |
# | |
# * Basic Settings | |
# | |
user = mysql | |
pid-file = /var/run/mysqld/mysqld.pid | |
socket = /var/run/mysqld/mysqld.sock | |
port = 3306 | |
basedir = /usr | |
datadir = /var/lib/mysql | |
tmpdir = /tmp | |
lc-messages-dir = /usr/share/mysql | |
skip-external-locking | |
# | |
# Instead of skip-networking the default is now to listen only on | |
# localhost which is more compatible and is not less secure. | |
bind-address = 0.0.0.0 | |
lower_case_table_names = 1 | |
# | |
# * Fine Tuning | |
# | |
key_buffer = 16M | |
max_allowed_packet = 16M | |
thread_stack = 192K | |
thread_cache_size = 8 | |
# This replaces the startup script and checks MyISAM tables if needed | |
# the first time they are touched | |
myisam-recover = BACKUP | |
#max_connections = 100 | |
#table_cache = 64 | |
#thread_concurrency = 10 | |
# | |
# * Query Cache Configuration | |
# | |
query_cache_limit = 1M | |
query_cache_size = 16M | |
# | |
# * Logging and Replication | |
# | |
# Both location gets rotated by the cronjob. | |
# Be aware that this log type is a performance killer. | |
# As of 5.1 you can enable the log at runtime! | |
#general_log_file = /var/log/mysql/mysql.log | |
#general_log = 1 | |
# | |
# Error log - should be very few entries. | |
# | |
log_error = /var/log/mysql/error.log | |
# | |
# Here you can see queries with especially long duration | |
#log_slow_queries = /var/log/mysql/mysql-slow.log | |
#long_query_time = 2 | |
#log-queries-not-using-indexes | |
# | |
# The following can be used as easy to replay backup logs or for replication. | |
# note: if you are setting up a replication slave, see README.Debian about | |
# other settings you may need to change. | |
#server-id = 1 | |
#log_bin = /var/log/mysql/mysql-bin.log | |
expire_logs_days = 10 | |
max_binlog_size = 100M | |
#binlog_do_db = include_database_name | |
#binlog_ignore_db = include_database_name | |
# | |
# * InnoDB | |
# | |
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. | |
# Read the manual for more InnoDB related options. There are many! | |
# | |
# * Security Features | |
# | |
# Read the manual, too, if you want chroot! | |
# chroot = /var/lib/mysql/ | |
# | |
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". | |
# | |
# ssl-ca=/etc/mysql/cacert.pem | |
# ssl-cert=/etc/mysql/server-cert.pem | |
# ssl-key=/etc/mysql/server-key.pem | |
[mysqldump] | |
quick | |
quote-names | |
max_allowed_packet = 16M | |
[mysql] | |
#no-auto-rehash # faster start of mysql but no tab completition | |
[isamchk] | |
key_buffer = 16M | |
# | |
# * IMPORTANT: Additional settings that can override those from this file! | |
# The files must end with '.cnf', otherwise they'll be ignored. | |
# | |
!includedir /etc/mysql/conf.d/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This script starts the database server. | |
StartMySQL () | |
{ | |
echo ".......................... () Starting MySQL ....................................................." | |
/usr/bin/mysqld_safe & | |
sleep 5 | |
} | |
CreateMySQLUser() | |
{ | |
echo ".......................... () Creating MySQL user ${MYSQL_USER} with ${MYSQL_PASSWORD} password ......" | |
mysql -uroot -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}'" | |
mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION" | |
echo "=> Done!" | |
echo "========================================================================" | |
echo "You can now connect to this MySQL Server using:" | |
echo "" | |
echo " mysql -u$MYSQL_USER -p$PASS -h<host> -P<port>" | |
echo "" | |
echo "Please remember to change the above password as soon as possible!" | |
echo "MySQL user 'root' has no password but only allows local connections" | |
echo "========================================================================" | |
} | |
OnCreateDB() | |
{ | |
echo ".......................... () Creating MySQL databases............................................" | |
mysql -uroot -e "CREATE DATABASE IF NOT EXISTS '${MYSQL_DATABASE}' DEFAULT CHARSET=utf8;" | |
} | |
StartMySQL | |
CreateMySQLUser | |
OnCreateDB | |
# And we restart the server to go operational | |
mysqladmin shutdown | |
echo "Starting MySQL Server" | |
/usr/sbin/mysqld |
Inscription à :
Articles
(
Atom
)