forked from movabletype/movabletype
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
112 lines (83 loc) · 3.33 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
FROM centos:centos6
RUN yum clean all
RUN yum -y update
RUN yum -y install httpd
RUN yum -y install mysql mysql-server mysql-devel
RUN yum -y install memcached
#### Perl
RUN yum -y install perl perl-core
# For installing XSS modules.
RUN yum -y install gcc
# For installing Net::SSLeay
RUN yum -y install openssl-devel
# Install GD from RPM.
RUN yum -y install perl-GD gd-devel
# Install Image::Magick from RPM.
RUN yum -y install ImageMagick-perl
# Enable Imager to manipulate GIF.
RUN yum -y install giflib-devel
# Install netpbm commands.
RUN yum -y install netpbm-progs
# For installing Math::GMP.
RUN yum -y install gmp-devel
# For installing XML::Parser.
RUN yum -y install expat-devel perl-XML-Parser
# For installing XML::LibXML.
RUN yum -y install libxml2-devel
# For installing Archive::Zip.
RUN yum -y install zip unzip
RUN yum -y install wget
RUN wget -O - https://cpanmin.us | perl - App::cpanminus
RUN cpanm Carton
WORKDIR /var/www/docker_build
ENV PERL_CPANM_OPT -L /var/www/docker_build/local
# Installation of Math::BigInt >=1.9994 is failed on CircleCI.
RUN cpanm Math::[email protected]
# Update for installing SOAP::Lite. Cannot install by cpanm and old Archive::Tar.
RUN cpanm Archive::Tar
# LWP::Protocol::https's test fails.
# https://rt.cpan.org/Public/Bug/Display.html?id=104150
RUN cpanm LWP::Protocol::https -n
# Term::ReadKey cannot be installed by "docker build".
RUN cpanm Term::ReadKey -n
# For installing Text::Aspell.
RUN yum -y install epel-release
RUN yum -y install aspell-en aspell-devel
# Twiggy cannot be installed with Perl 5.8 and 5.10.
RUN cpanm -n Twiggy
# PHP
RUN yum -y install php php-mysql php-gd php-pecl-memcache
RUN sed 's/^;date\.timezone =/date\.timezone = "Asia\/Tokyo"/' -i /etc/php.ini
# PHPUnit
RUN yum -y install php-xml
RUN wget -O phpunit https://phar.phpunit.de/phpunit-old.phar
RUN chmod +x phpunit
RUN mv phpunit /usr/local/bin/
RUN service mysqld start & sleep 10 && \
mysql -e "create database mt_test default character set utf8;" && \
mysql -e "grant all privileges on mt_test.* to mt@localhost;" && \
service mysqld stop
# OpenLDAP
RUN cpanm Net::LDAP
RUN yum -y install openldap-clients openldap-servers
COPY t/ldif/cn=config.ldif /var/www/docker_build/cn=config.ldif
COPY t/ldif/example_com.ldif /var/www/docker_build/example_com.ldif
COPY t/ldif/example_jp.ldif /var/www/docker_build/example_jp.ldif
COPY t/ldif/domain1_example_jp.ldif /var/www/docker_build/domain1_example_jp.ldif
COPY t/ldif/domain2_example_jp.ldif /var/www/docker_build/domain2_example_jp.ldif
RUN mkdir /var/lib/ldap/jp
RUN chown ldap:ldap /var/lib/ldap/jp
RUN service slapd start & sleep 10 && \
ldapmodify -Y EXTERNAL -H ldapi:// -f cn=config.ldif && \
ldapadd -f example_com.ldif -x -D "cn=admin,dc=example,dc=com" -w secret && \
ldapadd -f example_jp.ldif -x -D "cn=admin,dc=example,dc=jp" -w secret && \
ldapadd -f domain1_example_jp.ldif -x -D "cn=admin,dc=example,dc=jp" -w secret && \
ldapadd -f domain2_example_jp.ldif -x -D "cn=admin,dc=example,dc=jp" -w secret && \
service slapd stop
# PhantomJS
RUN yum -y install npm tar bzip2 openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel libpng-devel libjpeg-devel
RUN npm install -g phantomjs
# Install CPAN modules
COPY t/cpanfile /var/www/docker_build/cpanfile
RUN carton install
ENV PERL5LIB /var/www/docker_build/local/lib/perl5