Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
1,416
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.44 KB | None | 0 0
  1. # Docker container for OSWE lab (modules 3 and 4)
  2. #
  3. # To create the image
  4. #    docker image build -t atutor .
  5. #
  6. # To run atutor on port 80
  7. #    docker run -dit -p80:80 --name atutor -d atutor
  8. #
  9. # To configure mysql
  10. #
  11. #   docker exec -it atutor bash -c '/root/config_mysql.sh && /etc/init.d/mysql start'
  12. #
  13. # Then browse to the dockers IP on port 80 and follow the atutor initial setup steps (mysql password is set to toor)
  14. FROM php:5.6.30-apache
  15.  
  16. LABEL "maintainer"="someone <[email protected]>" \
  17.       "version.php"="5.6.30" \
  18.       "version.Atutor"="2.2.1"
  19.  
  20. EXPOSE 80
  21.  
  22. # Install the needed PHP libraries along with some other bits and bobs
  23. # ================================
  24. RUN apt-get update; \
  25.     apt-get install -y wget unzip expect; \
  26.     docker-php-ext-install mysql; \
  27.     apt-get install -y libfreetype6-dev libjpeg62-turbo-dev wget unzip; \
  28.     docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib; \
  29.     docker-php-ext-install gd
  30.  
  31. # Configure PHP writing a custom php .ini
  32. # ================================
  33. RUN touch /var/log/php-errors.log; \
  34.     echo "date.timezone=Europe/Dublin" >> /usr/local/etc/php/conf.d/docker-php.ini; \
  35.     echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php.ini; \
  36.     echo "log_errors = On" >> /usr/local/etc/php/conf.d/docker-php.ini; \
  37.     echo "error_log = /var/log/atutor.log" >> /usr/local/etc/php/conf.d/docker-php.ini;
  38.    
  39. # Download and install ATutor
  40. # ATutor-atutor_2_2_1
  41. # ===========================
  42. RUN wget -O /tmp/atutor.zip --quiet https://github.com/atutor/ATutor/archive/atutor_2_2_1.zip; \
  43.     unzip /tmp/atutor.zip -d /tmp; \
  44.     rm -rf /var/www/html; \
  45.     mv /tmp/ATutor-atutor_2_2_1 /var/www/html/; \
  46.     touch /var/www/html/include/config.inc.php; \
  47.     chmod a+rw -R /var/www/html/; \
  48.     echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php; \
  49.     rm /tmp/atutor.zip
  50.  
  51. RUN mkdir /content; chmod a+rw -R /content
  52.  
  53. # Setup mysql
  54. # ================================
  55. RUN wget http://dev.mysql.com/get/mysql-apt-config_0.3.5-1debian8_all.deb -O /tmp/mysql.deb \
  56. && printf '\n2\n' | dpkg -i /tmp/mysql.deb \
  57. && apt-get update
  58.  
  59. RUN echo '#!/usr/bin/expect -f' >> /root/config_mysql.sh; \
  60. echo 'set force_conservative 0' >> /root/config_mysql.sh; \
  61. echo 'if {$force_conservative} {' >> /root/config_mysql.sh; \
  62. echo '        set send_slow {1 .1}' >> /root/config_mysql.sh; \
  63. echo '        proc send {ignore arg} {' >> /root/config_mysql.sh; \
  64. echo '                sleep .1' >> /root/config_mysql.sh; \
  65. echo '                exp_send -s -- $arg' >> /root/config_mysql.sh; \
  66. echo '        }' >> /root/config_mysql.sh; \
  67. echo '}' >> /root/config_mysql.sh; \
  68. echo 'set timeout -1' >> /root/config_mysql.sh; \
  69. echo 'spawn apt-get install mysql-community-server' >> /root/config_mysql.sh; \
  70. echo 'match_max 100000' >> /root/config_mysql.sh; \
  71. echo 'set prompt \[y/N\] ' >> /root/config_mysql.sh; \
  72. echo 'expect -re $prompt' >> /root/config_mysql.sh; \
  73. echo 'send -- "Y\\r"' >> /root/config_mysql.sh; \
  74. echo 'expect -re $prompt' >> /root/config_mysql.sh; \
  75. echo 'send -- "Y\\r"' >> /root/config_mysql.sh; \
  76. echo 'expect "Enter root password: "' >> /root/config_mysql.sh; \
  77. echo 'send -- "toor\\r"' >> /root/config_mysql.sh; \
  78. echo 'expect "Re-enter root password: "' >> /root/config_mysql.sh; \
  79. echo 'send -- "toor\\r"' >> /root/config_mysql.sh; \
  80. echo 'expect eof' >> /root/config_mysql.sh  && chmod +x /root/config_mysql.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement