From ca89eeee3f5b8a193b934cf771f338725a8734cb Mon Sep 17 00:00:00 2001 From: Cameron Hurd Date: Wed, 17 Jul 2019 22:45:16 -0400 Subject: [PATCH] Update to Symfony 4 as default --- bitnami/symfony/1/debian-9/Dockerfile | 2 +- .../1/debian-9/rootfs/app-entrypoint.sh | 29 +++++++++++++++---- bitnami/symfony/1/debian-9/rootfs/run.sh | 2 +- bitnami/symfony/1/ol-7/Dockerfile | 8 ++--- .../symfony/1/ol-7/rootfs/app-entrypoint.sh | 29 +++++++++++++++---- bitnami/symfony/1/ol-7/rootfs/run.sh | 2 +- bitnami/symfony/README.md | 15 ++++++++-- bitnami/symfony/docker-compose.yml | 7 +++-- 8 files changed, 71 insertions(+), 23 deletions(-) diff --git a/bitnami/symfony/1/debian-9/Dockerfile b/bitnami/symfony/1/debian-9/Dockerfile index 7b6826240703..0fe6943c2e6a 100644 --- a/bitnami/symfony/1/debian-9/Dockerfile +++ b/bitnami/symfony/1/debian-9/Dockerfile @@ -2,7 +2,7 @@ FROM bitnami/minideb-extras:stretch-r420 LABEL maintainer "Bitnami " # 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 diff --git a/bitnami/symfony/1/debian-9/rootfs/app-entrypoint.sh b/bitnami/symfony/1/debian-9/rootfs/app-entrypoint.sh index 44ad4650c1ba..670c0aa10303 100755 --- a/bitnami/symfony/1/debian-9/rootfs/app-entrypoint.sh +++ b/bitnami/symfony/1/debian-9/rootfs/app-entrypoint.sh @@ -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 diff --git a/bitnami/symfony/1/debian-9/rootfs/run.sh b/bitnami/symfony/1/debian-9/rootfs/run.sh index d0ba05b2994b..06a0c0b55c77 100755 --- a/bitnami/symfony/1/debian-9/rootfs/run.sh +++ b/bitnami/symfony/1/debian-9/rootfs/run.sh @@ -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 diff --git a/bitnami/symfony/1/ol-7/Dockerfile b/bitnami/symfony/1/ol-7/Dockerfile index a801ca91e70c..789349abb948 100644 --- a/bitnami/symfony/1/ol-7/Dockerfile +++ b/bitnami/symfony/1/ol-7/Dockerfile @@ -2,7 +2,7 @@ FROM bitnami/oraclelinux-extras:7-r400 LABEL maintainer "Bitnami " # 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 diff --git a/bitnami/symfony/1/ol-7/rootfs/app-entrypoint.sh b/bitnami/symfony/1/ol-7/rootfs/app-entrypoint.sh index 44ad4650c1ba..670c0aa10303 100755 --- a/bitnami/symfony/1/ol-7/rootfs/app-entrypoint.sh +++ b/bitnami/symfony/1/ol-7/rootfs/app-entrypoint.sh @@ -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 diff --git a/bitnami/symfony/1/ol-7/rootfs/run.sh b/bitnami/symfony/1/ol-7/rootfs/run.sh index d0ba05b2994b..06a0c0b55c77 100755 --- a/bitnami/symfony/1/ol-7/rootfs/run.sh +++ b/bitnami/symfony/1/ol-7/rootfs/run.sh @@ -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 diff --git a/bitnami/symfony/README.md b/bitnami/symfony/README.md index ec72b7d5c569..a31b2b079d7f 100644 --- a/bitnami/symfony/README.md +++ b/bitnami/symfony/README.md @@ -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 diff --git a/bitnami/symfony/docker-compose.yml b/bitnami/symfony/docker-compose.yml index 402fb006e712..c8f8afd76b27 100644 --- a/bitnami/symfony/docker-compose.yml +++ b/bitnami/symfony/docker-compose.yml @@ -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