Skip to content

Instantly share code, notes, and snippets.

@sminnee
Created September 30, 2020 00:34
Show Gist options
  • Select an option

  • Save sminnee/ffdbdc0dc406b0dc0cd88db983658f26 to your computer and use it in GitHub Desktop.

Select an option

Save sminnee/ffdbdc0dc406b0dc0cd88db983658f26 to your computer and use it in GitHub Desktop.
# Basic php-apache 8.0.0beta3 appserver for Lando
#
# docker build -t sminnee/lando-php:8.0-apache .
FROM php:8.0.0beta3-apache-buster
# Install dependencies we need
RUN mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
&& apt -y update && apt-get install -y \
gnupg2 \
wget
# Install postgresql
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' >> /etc/apt/sources.list.d/pgdg.list \
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
# Install default set of required packages
RUN apt-get update && apt-get install -y \
bzip2 \
default-mysql-client \
exiftool \
git-core \
imagemagick \
libbz2-dev \
libc-client2007e-dev \
libicu-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \
libmagickwand-dev \
libmemcached-dev \
libpng-dev \
libpq-dev \
libssl-dev \
libxml2-dev \
libzip-dev \
libonig-dev \
openssl \
postgresql-client-10 \
pv \
ssh \
unzip \
wget \
xfonts-75dpi \
xfonts-base \
zlib1g-dev
# Install PECL depedencies
#RUN pecl install apcu
#RUN pecl install imagick
#RUN pecl install memcached
#RUN pecl install oauth-2.0.4
#RUN pecl install redis-5.1.1
#RUN pecl install xdebug-2.8.1
# Compile and configure all pecl packages
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/
#RUN docker-php-ext-enable apcu
#RUN docker-php-ext-enable imagick
#UN docker-php-ext-enable memcached
#RUN docker-php-ext-enable oauth
#RUN docker-php-ext-enable redis
RUN docker-php-ext-install bcmath
RUN docker-php-ext-install bz2
RUN docker-php-ext-install calendar
RUN docker-php-ext-install exif
RUN docker-php-ext-install gd
RUN docker-php-ext-install gettext
RUN docker-php-ext-install intl
RUN docker-php-ext-install ldap
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install mysqli
RUN docker-php-ext-install opcache
RUN docker-php-ext-install pcntl
RUN docker-php-ext-install pdo
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install pdo_pgsql
RUN docker-php-ext-install soap
RUN docker-php-ext-install zip
#!/bin/sh
RUN EXPECTED_CHECKSUM="$(wget -q -O - https://composer.github.io/installer.sig)" \
&& php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \
&& if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; \
then \
>&2 echo 'ERROR: Invalid installer checksum' \
&& rm composer-setup.php \
&& exit 1; \
fi \
&& php composer-setup.php --quiet --install-dir=/usr/local/bin --filename=composer \
&& RESULT=$? \
&& rm composer-setup.php
RUN chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
&& su -c "composer global require hirak/prestissimo" -s /bin/sh www-data \
&& apt-get -y clean \
&& apt-get -y autoclean \
&& apt-get -y autoremove \
&& rm -rf /var/lib/apt/lists/* && rm -rf && rm -rf /var/lib/cache/* && rm -rf /var/lib/log/* && rm -rf /tmp/*
# Configure imap support. Purposely put at the bottom else imap configuration might fail.
RUN PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl
RUN docker-php-ext-install imap
name: silverstripe-framework
recipe: lamp
config:
webroot: .
php: "7.4"
xdebug: true
services:
appserver:
overrides:
depends_on:
- database
# Inlined the environment needed for unit testing
environment:
SS_ENVIRONMENT_TYPE: dev
SS_DATABASE_SERVER: database
SS_DATABASE_USERNAME: root
SS_DATABASE_PASSWORD: ""
SS_DATABASE_NAME: lamp
build_as_root:
- apt-get update && apt-get -yqq install libtidy-dev && docker-php-ext-install tidy && docker-php-ext-enable tidy
build:
- composer install
# appserver8:
# type: php:7.4
# xdebug: false
# overrides:
# depends_on:
# - database
# image: sminnee/lando-php:8.0-apache
# # Inlined the environment needed for unit testing
# environment:
# SS_ENVIRONMENT_TYPE: dev
# SS_DATABASE_SERVER: database
# SS_DATABASE_USERNAME: root
# SS_DATABASE_PASSWORD: ""
# SS_DATABASE_NAME: lamp
database:
portforward: true
tooling:
sake:
service: appserver
cmd: ./sake
phpunit:
service: appserver
cmd: ./vendor/bin/phpunit
composer:
service: appserver
cmd: composer
# sake8:
# service: appserver8
# cmd: ./sake
# phpunit8:
# service: appserver8
# cmd: ./vendor/bin/phpunit
# composer8:
# service: appserver8
# cmd: composer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment