diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1269488 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +data diff --git a/Dockerfile b/Dockerfile index 5b71257..afc3fbf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,58 +1,33 @@ FROM php:fpm - -#### -# composer -#### -# Packages -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y \ - libfreetype6-dev \ - libjpeg62-turbo-dev \ - libmcrypt-dev \ - libpng12-dev \ - libbz2-dev \ - php-pear \ - curl \ - git \ - && rm -r /var/lib/apt/lists/* - -# PHP Extensions -RUN docker-php-ext-install mcrypt zip bz2 mbstring \ - && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ - && docker-php-ext-install gd +RUN apt-get update \ + && apt-get install -y libmcrypt-dev zlib1g-dev git\ + && docker-php-ext-install iconv mcrypt mbstring pdo pdo_mysql zip RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer -#### -# /composer -#### +ENV INVOICENINJA_VERSION 2.4.3 +#ENV INVOICENINJA_SHA1 3e9b63c1681b6923dc1a24399411c1abde6ef5ea -RUN apt-get update && apt-get install -y \ - libmcrypt-dev\ - && docker-php-ext-install iconv mcrypt \ - && docker-php-ext-install mbstring \ - && docker-php-ext-install mysqli \ - && docker-php-ext-install pdo pdo_mysql - -ENV INVOICENINJA_VERSION 2.4.0 -ENV INVOICENINJA_SHA1 3e9b63c1681b6923dc1a24399411c1abde6ef5ea +ENV DB_HOST mysql +ENV LOG errorlog +ENV APP_DEBUG 0 WORKDIR /var/www/ RUN curl -o invoiceninja.tar.gz -SL https://github.com/hillelcoren/invoice-ninja/archive/v${INVOICENINJA_VERSION}.tar.gz \ - && echo "$INVOICENINJA_SHA1 *invoiceninja.tar.gz" | sha1sum -c - \ +# && echo "$INVOICENINJA_SHA1 *invoiceninja.tar.gz" | sha1sum -c - \ && tar -xzf invoiceninja.tar.gz \ + && mv invoice-ninja-${INVOICENINJA_VERSION} app \ && rm -rf html \ - && ln -s invoice-ninja-${INVOICENINJA_VERSION}/public html \ + && ln -s app/public html \ && rm invoiceninja.tar.gz \ - && chown -R www-data:www-data /var/www/ \ - && composer install --working-dir invoice-ninja-${INVOICENINJA_VERSION} -o +# && chown -R www-data:www-data /var/www/ \ + && composer install --working-dir app -o VOLUME /var/www/html - -COPY app.php invoice-ninja-${INVOICENINJA_VERSION}/config/app.php +VOLUME /var/www/app/storage EXPOSE 80 diff --git a/app.php b/app.php deleted file mode 100644 index 3c141c8..0000000 --- a/app.php +++ /dev/null @@ -1,246 +0,0 @@ - env('APP_DEBUG', ''), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => env('APP_URL', ''), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | - */ - - 'timezone' => env('APP_TIMEZONE', 'UTC'), - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => env('APP_LOCALE', 'en'), - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => env('APP_KEY', ''), - - 'cipher' => env('APP_CIPHER', MCRYPT_RIJNDAEL_128), - - /* - |-------------------------------------------------------------------------- - | Logging Configuration - |-------------------------------------------------------------------------- - | - | Here you may configure the log settings for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | - */ - - 'log' => 'errorlog', - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - 'Illuminate\Foundation\Providers\ArtisanServiceProvider', - 'Illuminate\Auth\AuthServiceProvider', - 'Illuminate\Bus\BusServiceProvider', - 'Illuminate\Cache\CacheServiceProvider', - 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', - 'Illuminate\Routing\ControllerServiceProvider', - 'Illuminate\Cookie\CookieServiceProvider', - 'Illuminate\Database\DatabaseServiceProvider', - 'Illuminate\Encryption\EncryptionServiceProvider', - 'Illuminate\Filesystem\FilesystemServiceProvider', - 'Illuminate\Foundation\Providers\FoundationServiceProvider', - 'Illuminate\Hashing\HashServiceProvider', - (isset($_ENV['POSTMARK_API_TOKEN']) ? 'Postmark\Adapters\LaravelMailProvider' : 'Illuminate\Mail\MailServiceProvider'), - 'Illuminate\Pagination\PaginationServiceProvider', - 'Illuminate\Pipeline\PipelineServiceProvider', - 'Illuminate\Queue\QueueServiceProvider', - 'Illuminate\Redis\RedisServiceProvider', - 'Illuminate\Auth\Passwords\PasswordResetServiceProvider', - 'Illuminate\Session\SessionServiceProvider', - 'Illuminate\Translation\TranslationServiceProvider', - 'Illuminate\Validation\ValidationServiceProvider', - 'Illuminate\View\ViewServiceProvider', - - /* - * Additional Providers - */ - 'Bootstrapper\BootstrapperL5ServiceProvider', - 'Former\FormerServiceProvider', - 'Barryvdh\Debugbar\ServiceProvider', - 'Chumper\Datatable\DatatableServiceProvider', - 'Intervention\Image\ImageServiceProvider', - 'Webpatser\Countries\CountriesServiceProvider', - 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider', - 'Illuminate\Html\HtmlServiceProvider', - - /* - * Application Service Providers... - */ - 'App\Providers\AppServiceProvider', - 'App\Providers\BusServiceProvider', - 'App\Providers\ConfigServiceProvider', - 'App\Providers\EventServiceProvider', - 'App\Providers\RouteServiceProvider', - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | - */ - - 'aliases' => [ - - 'App' => 'Illuminate\Support\Facades\App', - 'Artisan' => 'Illuminate\Support\Facades\Artisan', - 'Auth' => 'Illuminate\Support\Facades\Auth', - 'Blade' => 'Illuminate\Support\Facades\Blade', - 'Cache' => 'Illuminate\Support\Facades\Cache', - 'ClassLoader' => 'Illuminate\Support\ClassLoader', - 'Config' => 'Illuminate\Support\Facades\Config', - 'Controller' => 'Illuminate\Routing\Controller', - 'Cookie' => 'Illuminate\Support\Facades\Cookie', - 'Crypt' => 'Illuminate\Support\Facades\Crypt', - 'host' => 'Illuminate\Support\Facades\DB', - 'Eloquent' => 'Illuminate\Database\Eloquent\Model', - 'Event' => 'Illuminate\Support\Facades\Event', - 'File' => 'Illuminate\Support\Facades\File', - 'Hash' => 'Illuminate\Support\Facades\Hash', - 'Input' => 'Illuminate\Support\Facades\Input', - 'Lang' => 'Illuminate\Support\Facades\Lang', - 'Log' => 'Illuminate\Support\Facades\Log', - 'Mail' => 'Illuminate\Support\Facades\Mail', - 'Password' => 'Illuminate\Support\Facades\Password', - 'Queue' => 'Illuminate\Support\Facades\Queue', - 'Redirect' => 'Illuminate\Support\Facades\Redirect', - 'Redis' => 'Illuminate\Support\Facades\Redis', - 'Request' => 'Illuminate\Support\Facades\Request', - 'Response' => 'Illuminate\Support\Facades\Response', - 'Route' => 'Illuminate\Support\Facades\Route', - 'Schema' => 'Illuminate\Support\Facades\Schema', - 'Seeder' => 'Illuminate\Database\Seeder', - 'Session' => 'Illuminate\Support\Facades\Session', - 'Str' => 'Illuminate\Support\Str', - 'URL' => 'Illuminate\Support\Facades\URL', - 'Validator' => 'Illuminate\Support\Facades\Validator', - 'View' => 'Illuminate\Support\Facades\View', - - - // Added Class Aliases - 'Utils' => 'App\Libraries\Utils', - 'Form' => 'Collective\Html\FormFacade', - 'HTML' => 'Collective\Html\HtmlFacade', - 'SSH' => 'Illuminate\Support\Facades\SSH', - 'Alert' => 'Bootstrapper\Facades\Alert', - 'Badge' => 'Bootstrapper\Facades\Badge', - 'Breadcrumb' => 'Bootstrapper\Facades\Breadcrumb', - 'Button' => 'Bootstrapper\Facades\Button', - 'ButtonGroup' => 'Bootstrapper\Facades\ButtonGroup', - 'ButtonToolbar' => 'Bootstrapper\Facades\ButtonToolbar', - 'Carousel' => 'Bootstrapper\Facades\Carousel', - 'DropdownButton' => 'Bootstrapper\Facades\DropdownButton', - 'Helpers' => 'Bootstrapper\Facades\Helpers', - 'Icon' => 'Bootstrapper\Facades\Icon', - 'Label' => 'Bootstrapper\Facades\Label', - 'MediaObject' => 'Bootstrapper\Facades\MediaObject', - 'Navbar' => 'Bootstrapper\Facades\Navbar', - 'Navigation' => 'Bootstrapper\Facades\Navigation', - 'Paginator' => 'Bootstrapper\Facades\Paginator', - 'Progress' => 'Bootstrapper\Facades\Progress', - 'Tabbable' => 'Bootstrapper\Facades\Tabbable', - 'Table' => 'Bootstrapper\Facades\Table', - 'Thumbnail' => 'Bootstrapper\Facades\Thumbnail', - 'Typeahead' => 'Bootstrapper\Facades\Typeahead', - 'Typography' => 'Bootstrapper\Facades\Typography', - 'Former' => 'Former\Facades\Former', - 'Datatable' => 'Chumper\Datatable\Facades\DatatableFacade', - 'Omnipay' => 'Omnipay\Omnipay', - 'CreditCard' => 'Omnipay\Common\CreditCard', - 'Image' => 'Intervention\Image\Facades\Image', - 'Countries' => 'Webpatser\Countries\CountriesFacade', - 'Carbon' => 'Carbon\Carbon', - 'Rocketeer' => 'Rocketeer\Facades\Rocketeer', - - ], - -]; diff --git a/docker-compose.yml b/docker-compose.yml index 34477a4..a7511d7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,11 +14,9 @@ app: - APP_DEBUG=true - APP_KEY=invoicekeyinvoicekeyinvoicekey12 - DB_USERNAME=user - - DB_PASSWORD=mdp - - DB_HOST=$MYSQL_PORT + - DB_PASSWORD=pass - DB_DATABASE=ninja - volumes: - - ./data/invoice:/var/www/html/logo + - DB_HOST=mysql web: image: nginx