TransactdãDockerã§è©¦ãï¼Rubyï¼2/17 PHP追è¨ï¼
ï¼2/17 追è¨ï¼PHPç¨ã¤ã¡ã¼ã¸ã¨ãRuby/PHPã®ãã¼ã¸ã§ã³ã«ã¤ãã¦è¿½è¨ãã¾ããã
å æ¥ãTwitterã§ä»¥ä¸ã®ãã¤ã¼ããè¦ããã¾ããã
transactd ã®å ¥ã£ã docker image ãã§ããããã ãMySQL ã®ãã©ã°ã¤ã³ã¯ããã¥ã¢ã«ãè¦ãéããmy.cnf ã® plugin-load ã§ã®æå®ã¨ãsql ã§ã® install plugin ã§ã®æå®ã§æåãæå³çã«éãã®ãæ°ã«ãªãã
— mapk0y (@mapk0y) 2017å¹´2æ2æ¥
確ãã«ãDockerã¤ã¡ã¼ã¸ãããã°ããã«è©¦ããã¨ãã§ãã¾ããã
ã¨ãããã¨ã§ãDockerã®å
¬å¼Rubyã¤ã¡ã¼ã¸ã«Transactdã¯ã©ã¤ã¢ã³ãã追å ããã¤ã¡ã¼ã¸ã使ãã¾ããã
ï¼2/17 追è¨ï¼
ãã®ã¤ã¡ã¼ã¸ã¯ææ°çã®Rubyï¼2/17ç¾å¨ã¯2.4ï¼ã使ç¨ãã¦ãã¾ãããDockerfileãæ¸ãæããã°Ruby 2.1, 2.2, 2.3ã«ããã®ã¾ã¾ä½¿ç¨ã§ãã¾ãã
ï¼ï¼è¿½è¨ï¼
ã¾ããMySQLã¨Transactdã«ã¤ãã¦ã¯ããã§ã«ã¤ã¡ã¼ã¸ã使ãã¦ãã ãã£ãæ¹ãããã£ãããããã§ãã
yokogawa/mysql-transactd - Docker Hub
ãããã®ã¤ã¡ã¼ã¸ã使ç¨ãã¦ãå®éã«Transactdã®ãã¹ããå®è¡ãã¦ã¿ã¾ãã
ãµã¼ãå´
MySQLSvr
ã¨ããååãä»ãã¦ãTransactdå
¥ãã®MySQLãµã¼ãã®ã³ã³ãããå®è¡ãã¾ãã
docker run -it --name MySQLSvr yokogawa/mysql-transactd /bin/bash
対話å®è¡ãããã-it
ãªãã·ã§ã³ãä»ãã¦ããã®ã§ãmysqldãèµ·åå¾ãå®éã«Transactdãåãã¦ããã確èªãã¾ãã
root@2c44d5533fca:/# /etc/init.d/mysql start ï¼ç¥ï¼ [info] MySQL Community Server 5.7.17 is started. root@2c44d5533fca:/# mysql -uroot -p mysql> show status like 'tr%'; +------------------------------+-------+ | Variable_name | Value | +------------------------------+-------+ | Transactd_cur_open_databases | 0 | | Transactd_ha | 0 | | Transactd_tcp_connections | 1 | | Transactd_tpool_connections | 0 | | Transactd_tpool_threads | 0 | +------------------------------+-------+ 5 rows in set (0.01 sec)
ç¡äºã«Transactdã®ã¹ãã¼ã¿ã¹ã表示ããã¾ããã
ãã¹ããããããã«ã¯ãã¯ã©ã¤ã¢ã³ãå´ããã®æ¥ç¶ã許å¯ããããã«ã¢ã¯ã»ã¹æ¨©ã®è¨å®ãããªããã°ãªãã¾ããã
Dockerã®ã³ã³ããã«ã¯172.17.0.0/255.255.255.0
ã®ç¯å²ã®IPã¢ãã¬ã¹ãå²ãæ¯ãããã®ã§ãããã許å¯ãã¦ããã¾ãã
mysql> CREATE USER root@'172.17.0.0/255.255.255.0';
ã¯ã©ã¤ã¢ã³ãå´
æ°ããã¿ã¼ããã«ãéããã¯ã©ã¤ã¢ã³ãå´ã®ã³ã³ãããå®è¡ãã¾ãã
docker run -it --link MySQLSvr:svr bizstation/transactd-ruby /bin/bash
Transactdã®gemãã¤ã³ã¹ãã¼ã«ããã¦ãããã¨ã確èªãã¾ãã
root@1535b3aef141:/# gem which transactd /usr/local/bundle/gems/transactd-3.7.2/lib/transactd.rb
ãã¹ãå®è¡ã®ããã«rspecãã¤ã³ã¹ãã¼ã«ãã¾ãã
root@1535b3aef141:/# gem install rspec
ãµã¼ãã®ãã¹ãåMySQLSvr
ãæå®ãã¦ããã¹ããå®è¡ãã¾ãã
root@1535b3aef141:/# TRANSACTD_RSPEC_HOST=MySQLSvr \ > rspec -c /usr/local/bundle/gems/transactd-3.7.2/test/transactd_spec.rb
ã¨ã¦ãç°¡åã«ç°å¢ãç¨æã§ããã¨æãã¾ãã
ç¾å¨ãPHPã¯ã©ã¤ã¢ã³ãç¨ã®Dockerã¤ã¡ã¼ã¸ã使ä¸ã§ãã
ãã²Transactdã試ãã¦ã¿ã¦ãã ããï¼
2/17 追è¨
Dockerã®å ¬å¼PHPã¤ã¡ã¼ã¸ã«Transactdã¯ã©ã¤ã¢ã³ãã追å ããã¤ã¡ã¼ã¸ã使ãã¾ããã
ãã®ã¤ã¡ã¼ã¸ã¯ææ°çã®PHPï¼2/17ç¾å¨ã¯7.1ï¼ã使ç¨ãã¦ãã¾ãããDockerfileãæ¸ãæããã°PHP 7.0, 5.6ã«ããã®ã¾ã¾ä½¿ç¨ã§ãã¾ãã
ãµã¼ãå´ãRubyã®ã¨ãã¨åãããã«æºåãã¦ãããã¯ã©ã¤ã¢ã³ãå´ã¨ãã¦ã³ã³ãããå®è¡ãã¾ãã
docker run -it --link MySQLSvr:svr bizstation/transactd-php /bin/bash
ãã¹ãã®ãã£ã¬ã¯ããªã«PHPUnitãã¤ã³ã¹ãã¼ã«ãã¦ããã®ã§ãããã«ç§»åãã¦ãã¹ããå®è¡ãã¾ãã
root@955e089e8c67:/# cd /transactd_client_3.7.2_php/tests/ root@955e089e8c67:/transactd_client_3.7.2_php/tests# TRANSACTD_PHPUNIT_HOST=MySQLSvr \ > ./phpunit.phar transactd_Test.php