Update to Symfony 4 as default

This commit is contained in:
Cameron Hurd 2019-07-17 22:45:16 -04:00
parent 4b89901311
commit ca89eeee3f
8 changed files with 71 additions and 23 deletions

View File

@ -2,7 +2,7 @@ FROM bitnami/minideb-extras:stretch-r420
LABEL maintainer "Bitnami <containers@bitnami.com>"
# Install required system packages and dependencies
RUN install_packages libbz2-1.0 libc6 libcomerr2 libcurl3 libffi6 libfreetype6 libgcc1 libgcrypt20 libgmp10 libgnutls30 libgpg-error0 libgssapi-krb5-2 libhogweed4 libicu57 libidn11 libidn2-0 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblzma5 libmemcached11 libmemcachedutil2 libncurses5 libnettle6 libnghttp2-14 libp11-kit0 libpng16-16 libpq5 libpsl5 libreadline7 librtmp1 libsasl2-2 libssh2-1 libssl1.0.2 libssl1.1 libstdc++6 libsybdb5 libtasn1-6 libtidy5 libtinfo5 libunistring0 libxml2 libxslt1.1 libzip4 zlib1g
RUN install_packages libbz2-1.0 libc6 libcomerr2 libcurl3 libffi6 libfreetype6 libgcc1 libgcrypt20 libgmp10 libgnutls30 libgpg-error0 libgssapi-krb5-2 libhogweed4 libicu57 libidn11 libidn2-0 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblzma5 libmemcached11 libmemcachedutil2 libncurses5 libnettle6 libnghttp2-14 libp11-kit0 libpng16-16 libpq5 libpsl5 libreadline7 librtmp1 libsasl2-2 libssh2-1 libssl1.0.2 libssl1.1 libstdc++6 libsybdb5 libtasn1-6 libtidy5 libtinfo5 libunistring0 libxml2 libxslt1.1 libzip4 unzip zlib1g
RUN bitnami-pkg unpack php-7.3.7-0 --checksum 706d0a7a939eaa105f6091e77ae72193b986297db5d03f3678099d8a419164c6
RUN bitnami-pkg install mysql-client-10.3.16-0 --checksum c22e014b6fc259a67fcdd52b365e62ed08e6d7e6871888d9ef935c8531ada9b2
RUN bitnami-pkg install symfony-1.5.11-20 --checksum e512f0bbcf6c8a6c01f87adcb8f193699a88db2f811986a65de2a0468c736fc8

View File

@ -15,21 +15,40 @@ echo "Starting application ..."
if [ "$1" = "/run.sh" ]; then
# Create a Symfony app if not found
if [ ! -d "$PROJECT_DIRECTORY" ] ; then
log "Creating example Symfony application"
nami execute symfony createProject --databaseServerHost "$MARIADB_HOST" --databaseServerPort "$MARIADB_PORT_NUMBER" --databaseAdminUser "$MARIADB_USER" "$SYMFONY_PROJECT_NAME" | grep -v undefined
log "Creating a project with symfony/skeleton"
composer create-project symfony/skeleton $SYMFONY_PROJECT_NAME
if [ -z "$SYMFONY_NO_DB" ] ; then
log "Installing symfony/orm-pack"
composer require symfony/orm-pack -d $PROJECT_DIRECTORY
fi
export DATABASE_URL=mysql://$MARIADB_USER@$MARIADB_HOST/$MARIADB_DATABASE
if [ ! -f "$PROJECT_DIRECTORY/.env.local" ] ; then
touch $PROJECT_DIRECTORY
echo "DATABASE_URL=$DATABASE_URL" >> $PROJECT_DIRECTORY/.env.local
log "Added MariaDB container credentials to .env.local"
fi
log "Symfony app created"
else
log "App already created"
fi
# Symfony 3.x -> web/
[ -d "$PROJECT_DIRECTORY/web" ] && export WEB_DIR=$PROJECT_DIRECTORY/web
# Symfony 4.x -> public/
[ -d "$PROJECT_DIRECTORY/public" ] && export WEB_DIR=$PROJECT_DIRECTORY/public
# Link Symfony app to the index
if [ ! -f "$PROJECT_DIRECTORY/web/index.php" ]; then
sudo ln -s "$PROJECT_DIRECTORY/web/app.php" "$PROJECT_DIRECTORY/web/index.php"
if [ ! -f "$WEB_DIR/index.php" ] && [ -f "$WEB_DIR/app.php" ]; then
sudo ln -s "$WEB_DIR/app.php" "$WEB_DIR/web/index.php"
fi
fi
echo "symfony successfully initialized"
nami_initialize php
info "Starting symfony... "
fi

View File

@ -1,3 +1,3 @@
#!/bin/bash
php -S 0.0.0.0:8000 -t $PROJECT_DIRECTORY/web/
php -S 0.0.0.0:8000 -t $WEB_DIR

View File

@ -2,7 +2,7 @@ FROM bitnami/oraclelinux-extras:7-r400
LABEL maintainer "Bitnami <containers@bitnami.com>"
# Install required system packages and dependencies
RUN install_packages bzip2-libs cyrus-sasl-lib freetds freetype glibc gmp gnutls keyutils-libs krb5-libs libcom_err libcurl libffi libgcc libgcrypt libgpg-error libicu libidn libjpeg-turbo libmemcached libpng libselinux libssh2 libstdc++ libtasn1 libtidy libxml2 libxslt ncurses-libs nettle nspr nss nss-softokn-freebl nss-util openldap openssl-libs p11-kit pcre postgresql-libs readline xz-libs zlib
RUN install_packages bzip2-libs cyrus-sasl-lib freetds freetype glibc gmp gnutls keyutils-libs krb5-libs libcom_err libcurl libffi libgcc libgcrypt libgpg-error libicu libidn libjpeg-turbo libmemcached libpng libselinux libssh2 libstdc++ libtasn1 libtidy libxml2 libxslt ncurses-libs nettle nspr nss nss-softokn-freebl nss-util openldap openssl-libs p11-kit pcre postgresql-libs readline unzip xz-libs zlib
RUN bitnami-pkg unpack php-7.3.7-0 --checksum 433c0d4c346ba1cc2c3e4a117c28acf418460e777863fb341c9be99a3b6afa87
RUN bitnami-pkg install mysql-client-10.3.16-0 --checksum bc7ef5b2abef585c0079a7e4cb2a099c5f40cf39402c52078438a39882953ab4
RUN bitnami-pkg install symfony-1.5.11-20 --checksum d4714f97e462524266a97626854747c743e1d4b5a9f9be155f480eef9b592631
@ -10,11 +10,7 @@ RUN bitnami-pkg install symfony-1.5.11-20 --checksum d4714f97e462524266a97626854
COPY rootfs /
ENV BITNAMI_APP_NAME="symfony" \
BITNAMI_IMAGE_VERSION="1.5.11-ol-7-r358" \
MARIADB_HOST="mariadb" \
MARIADB_PORT_NUMBER="3306" \
MARIADB_USER="root" \
PATH="/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/mysql/bin:/opt/bitnami/symfony/bin:$PATH" \
SYMFONY_PROJECT_NAME="myapp"
PATH="/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/mysql/bin:/opt/bitnami/symfony/bin:$PATH"
EXPOSE 8000

View File

@ -15,21 +15,40 @@ echo "Starting application ..."
if [ "$1" = "/run.sh" ]; then
# Create a Symfony app if not found
if [ ! -d "$PROJECT_DIRECTORY" ] ; then
log "Creating example Symfony application"
nami execute symfony createProject --databaseServerHost "$MARIADB_HOST" --databaseServerPort "$MARIADB_PORT_NUMBER" --databaseAdminUser "$MARIADB_USER" "$SYMFONY_PROJECT_NAME" | grep -v undefined
log "Creating a project with symfony/skeleton"
composer create-project symfony/skeleton $SYMFONY_PROJECT_NAME
if [ -z "$SYMFONY_NO_DB" ] ; then
log "Installing symfony/orm-pack"
composer require symfony/orm-pack -d $PROJECT_DIRECTORY
fi
export DATABASE_URL=mysql://$MARIADB_USER@$MARIADB_HOST/$MARIADB_DATABASE
if [ ! -f "$PROJECT_DIRECTORY/.env.local" ] ; then
touch $PROJECT_DIRECTORY
echo "DATABASE_URL=$DATABASE_URL" >> $PROJECT_DIRECTORY/.env.local
log "Added MariaDB container credentials to .env.local"
fi
log "Symfony app created"
else
log "App already created"
fi
# Symfony 3.x -> web/
[ -d "$PROJECT_DIRECTORY/web" ] && export WEB_DIR=$PROJECT_DIRECTORY/web
# Symfony 4.x -> public/
[ -d "$PROJECT_DIRECTORY/public" ] && export WEB_DIR=$PROJECT_DIRECTORY/public
# Link Symfony app to the index
if [ ! -f "$PROJECT_DIRECTORY/web/index.php" ]; then
sudo ln -s "$PROJECT_DIRECTORY/web/app.php" "$PROJECT_DIRECTORY/web/index.php"
if [ ! -f "$WEB_DIR/index.php" ] && [ -f "$WEB_DIR/app.php" ]; then
sudo ln -s "$WEB_DIR/app.php" "$WEB_DIR/web/index.php"
fi
fi
echo "symfony successfully initialized"
nami_initialize php
info "Starting symfony... "
fi

View File

@ -1,3 +1,3 @@
#!/bin/bash
php -S 0.0.0.0:8000 -t $PROJECT_DIRECTORY/web/
php -S 0.0.0.0:8000 -t $WEB_DIR

View File

@ -1,8 +1,11 @@
# Bitnami Symfony Development Container
> Note that this is a development container that includes the [`symfony` command-line tool](https://symfony.com/blog/introducing-the-new-symfony-installer).
> This allows you to create a project based on any version of symfony.
> Note that this is a development container. If a Symfony app is not already
> present, `composer create-project symfony/skeleton $SYMFONY_PROJECT_NAME`
> is run to create a Symfony 4.x project.
>
> In the absence of the `$SYMFONY_NO_DB,` envvar/flag, `symfony/orm-pack` is installed.
## TL;DR;
@ -11,6 +14,8 @@
```bash
$ mkdir ~/myapp && cd ~/myapp
$ curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-symfony/master/docker-compose.yml
# Set some default envvars
$ echo "SYMFONY_PROJECT_NAME=myapp\nMARIADB_HOST=mariadb\nMARIADB_PORT_NUMBER=3306\nMARIADB_USER=bobby\nMARIADB_PASSWORD=tables\nMARIADB_DATABASE=myapp" > .env
$ docker-compose up
```
@ -75,6 +80,12 @@ Download the [docker-compose.yml](https://raw.githubusercontent.com/bitnami/bitn
$ curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-symfony/master/docker-compose.yml
```
Set a few environment variables
```bash
$ echo "SYMFONY_PROJECT_NAME=myapp\nMARIADB_HOST=mariadb\nMARIADB_PORT_NUMBER=3306\nMARIADB_USER=bobby\nMARIADB_PASSWORD=tables\nMARIADB_DATABASE=myapp" > .env
```
Finally launch the Symfony application development environment using:
```bash

View File

@ -1,4 +1,5 @@
version: '2'
services:
myapp:
image: 'bitnami/symfony:1'
@ -6,9 +7,11 @@ services:
- '8000:8000'
volumes:
- '.:/app'
env_file:
- .env
depends_on:
- mariadb
mariadb:
image: 'bitnami/mariadb:10.3'
environment:
- ALLOW_EMPTY_PASSWORD=yes
env_file:
- .env