自定义配置

配置文件:

  1. # ubuntu server 16.04
  2. FROM ubuntu:xenial
  3. # signature
  4. MAINTAINER blackist "liangl.Dong@gmail.com"
  5. # Define commonly used JAVA_HOME variable
  6. ENV BASE_DIR /data
  7. ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
  8. ENV CATALINA_HOME /opt/tomcat/apache-tomcat-8.0.23
  9. ENV SSH_ROOT_USER root \
  10. SSH_ROOT_PASS root
  11. ENV MYSQL_ROOT_PASS root
  12. VOLUME $BASE_DIR
  13. ADD . $BASE_DIR
  14. # update apt
  15. RUN apt-get clean
  16. RUN apt-get update
  17. RUN apt-get install -y software-properties-common
  18. # Install ssh
  19. RUN apt-get install -y openssh-server
  20. RUN mkdir /var/run/sshd
  21. RUN echo 'root:root' | chpasswd
  22. RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
  23. # SSH login fix. Otherwise user is kicked off after login
  24. RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
  25. ENV NOTVISIBLE "in users profile"
  26. RUN echo "export VISIBLE=now" >> /etc/profile
  27. # Install OpenJDK8
  28. RUN add-apt-repository ppa:openjdk-r/ppa
  29. RUN apt-get update
  30. RUN apt-get install -y openjdk-8-jdk
  31. RUN echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/environment
  32. RUN export JAVA_HOME=$JAVA_HOME
  33. # Install tools
  34. RUN apt-get install -y vim wget
  35. # Install tomcat
  36. RUN mkdir -p /opt/tomcat
  37. RUN wget -P /opt/tomcat http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz
  38. RUN cd /opt/tomcat && tar -xvzf apache-tomcat-8.0.23.tar.gz
  39. # Install mysql
  40. RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-server mysql-server/root_password password root'"]
  41. RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root'"]
  42. RUN apt-get -y install mysql-server
  43. RUN /etc/init.d/mysql start
  44. # Define working directory.
  45. RUN service mysql start
  46. RUN sed -Ei 's/^(bind-address|log)/#&/' /etc/mysql/my.cnf \
  47. && echo 'skip-host-cache\nskip-name-resolve' | awk '{ print } $1 == "[mysqld]" && c == 0 { c = 1; system("cat") }' /etc/mysql/my.cnf > /tmp/my.cnf \
  48. && mv /tmp/my.cnf /etc/mysql/my.cnf
  49. # Config tomcat
  50. # Deploy war web app
  51. # open port 8080 for tomcat, 22 for ssh
  52. EXPOSE 22
  53. EXPOSE 3306
  54. EXPOSE 8080
  55. WORKDIR $BASE_DIR
  56. # tomcat start, ssh
  57. ENTRYPOINT $BASE_DIR/init.sh && $CATALINA_HOME/bin/startup.sh && /usr/sbin/sshd && /usr/bin/mysqld_safe