|
| 1 | +FROM fedora:42 |
| 2 | + |
| 3 | +WORKDIR /root |
| 4 | + |
| 5 | +COPY ./patch/ /root/patch/ |
| 6 | + |
| 7 | +RUN dnf --setopt=ip_resolve=4 -y install\ |
| 8 | + distribution-gpg-keys glibc-langpack-en glibc-langpack-ja xz git make cmake gcc clang curl perl perl-core tar zip unzip bzip2 which perl-Unix-Process postfix cyrus-sasl-devel cyrus-sasl-plain\ |
| 9 | + vim nano\ |
| 10 | + libomp-devel ImageMagick-perl perl-GD GraphicsMagick-perl netpbm-progs ImageMagick GraphicsMagick giflib-devel libpng-devel libjpeg-devel gd-devel libwebp-devel icc-profiles-openicc\ |
| 11 | + libxml2-devel expat-devel openssl-devel openssl gmp-devel\ |
| 12 | + php php-mysqlnd php-gd php-mbstring php-pecl-memcache\ |
| 13 | + ruby ruby-devel\ |
| 14 | + mod_ssl vsftpd ftp memcached\ |
| 15 | + &&\ |
| 16 | + dnf -y install https://dev.mysql.com/get/mysql84-community-release-fc42-1.noarch.rpm &&\ |
| 17 | + dnf -y --enablerepo=mysql-8.4-lts-community --setopt=install_weak_deps=false install\ |
| 18 | + mysql-community-server mysql-community-client mysql-community-libs-compat mysql-community-libs mysql-community-devel\ |
| 19 | + && dnf clean --enablerepo=mysql-8.4-lts-community all &&\ |
| 20 | + dnf -y update --skip-unavailable &&\ |
| 21 | + dnf clean all && rm -rf /var/cache/dnf &&\ |
| 22 | + mkdir src && cd src &&\ |
| 23 | + curl -LO https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.43/GraphicsMagick-1.3.43.tar.xz &&\ |
| 24 | + tar xf GraphicsMagick-1.3.43.tar.xz && cd GraphicsMagick-1.3.43 &&\ |
| 25 | + ./configure --prefix=/usr --enable-shared --with-perl --disable-opencl --disable-dependency-tracking --without-x --without-ttf --without-wmf --without-magick-plus-plus --without-bzlib --without-zlib --without-dps --without-fpx --without-jpig --without-lcms2 --without-lzma --without-xml --with-quantum-depth=16 && make && make install && cd PerlMagick && perl Makefile.PL && make install && cd ../.. &&\ |
| 26 | + cd .. && rm -rf src && ldconfig /usr/local/lib &&\ |
| 27 | + curl -sL https://phar.phpunit.de/phpunit-11.phar > phpunit && chmod +x phpunit &&\ |
| 28 | + mv phpunit /usr/local/bin/ &&\ |
| 29 | + (curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh | bash) &&\ |
| 30 | + gem install \ |
| 31 | + fluentd\ |
| 32 | + &&\ |
| 33 | + curl -sL https://cpanmin.us > cpanm && chmod +x cpanm && perl -pi -E 's{http://(www\.cpan\.org|backpan\.perl\.org|cpan\.metacpan\.org|fastapi\.metacpan\.org|cpanmetadb\.plackperl\.org)}{https://$1}g' cpanm && mv cpanm /usr/local/bin &&\ |
| 34 | + curl -sL --compressed https://git.io/cpm > cpm &&\ |
| 35 | + chmod +x cpm &&\ |
| 36 | + mv cpm /usr/local/bin/ &&\ |
| 37 | + cpanm -v ExtUtils::ParseXS@3.51 &&\ |
| 38 | + cpanm -n CryptX App::Prove::Plugin::MySQLPool XMLRPC::Lite XML::Atom Net::Server Perl::Critic::Pulp Selenium::Remote::Driver &&\ |
| 39 | + cpanm -v Archive::Zip@1.65 DBD::mysql@4.050 &&\ |
| 40 | + cd /root/patch/Test-mysqld-1.0030 && cpanm --installdeps . && cpanm . && cd /root &&\ |
| 41 | + cd /root/patch/Crypt-DES-2.07 && cpanm --installdeps . && cpanm . && cd /root &&\ |
| 42 | + rm -rf /root/patch &&\ |
| 43 | + cpanm -v \ |
| 44 | + AnyEvent::FTP::Server Class::Method::Modifiers Capture::Tiny Moo File::chdir Net::LDAP Linux::Pid Data::Section::Simple\ |
| 45 | + pQuery\ |
| 46 | + JSON::XS Starman Imager::File::WEBP Plack::Middleware::ReverseProxy Devel::CheckLib\ |
| 47 | + JavaScript::Minifier CSS::Minifier\ |
| 48 | + Fluent::Logger\ |
| 49 | + && curl -sLO https://raw.githubusercontent.com/movabletype/movabletype/develop/t/cpanfile &&\ |
| 50 | + perl -i -nE 'print unless /(?:YAML::Syck)/' cpanfile &&\ |
| 51 | + cpanm --installdeps -v . &&\ |
| 52 | + rm -rf cpanfile /root/.perl-cpm /root/.cpanm /root/.qws |
| 53 | + |
| 54 | +ENV LANG=en_US.UTF-8 \ |
| 55 | + LC_ALL=en_US.UTF-8 |
| 56 | + |
| 57 | +RUN set -ex &&\ |
| 58 | + perl -i -pe \ |
| 59 | + 's!AllowOverride None!AllowOverride All!g; s!#AddEncoding x-gzip \.gz \.tgz!AddEncoding x-gzip .gz .tgz .svgz!g;' \ |
| 60 | + /etc/httpd/conf/httpd.conf &&\ |
| 61 | + perl -e 'my ($inifile) = `php --ini` =~ m!Loaded Configuration File:\s+(/\S+/php.ini)!; my $ini = do { open my $fh, "<", $inifile; local $/; <$fh> }; $ini =~ s!^;\s*date\.timezone =!date\.timezone = "Asia/Tokyo"!m; open my $fh, ">", $inifile; print $fh $ini' &&\ |
| 62 | + sed -i -E 's/inet_protocols = all/inet_protocols = ipv4/' /etc/postfix/main.cf |
| 63 | + |
| 64 | +RUN cd /usr/bin && ./make-dummy-cert /etc/pki/tls/certs/localhost.crt &&\ |
| 65 | + perl -i -pe 's!SSLCertificateKeyFile /etc/pki/tls/private/localhost.key!!' \ |
| 66 | + /etc/httpd/conf.d/ssl.conf && cd $WORKDIR |
| 67 | + |
| 68 | +COPY ./docker-entrypoint.sh / |
| 69 | +ENTRYPOINT ["/docker-entrypoint.sh"] |
0 commit comments