Created
June 2, 2021 17:02
-
-
Save valdeir2000/ecf394f12c2ef87c1456a5d737667284 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -Eeuo pipefail | |
if [[ "$1" =~ php-fpm|apache2* ]]; then | |
uid=$(id -u) | |
gid=$(id -g) | |
if [ "$uid" -eq 0 ]; then | |
user="${APACHE_RUN_USER:-www-data}" | |
group="${APACHE_RUN_GROUP:-www-data}" | |
else | |
user="$uid" | |
group="$gid" | |
fi | |
if [ ! -e index.php ]; then | |
if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then | |
chown "$user:$group" . | |
fi | |
if [ -d catalog ] || [ -d admin ]; then | |
echo >&1 "Atenção! A pasta deve estar vazia para inciar o projeto" | |
fi | |
sourceTarArgs=( | |
--create | |
--directory /usr/src/opencart | |
--owner "$user" --group "$group" | |
--file - | |
) | |
targetTarArgs=( | |
--extract | |
--file - | |
) | |
if [ "$uid" != '0' ]; then | |
targetTarArgs+=( --no-overwrite-dir ) | |
fi | |
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" | |
echo >&2 "Arquivos copiados para $PWD" | |
fi | |
fi | |
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM php:7.4-fpm | |
ARG VERSION="1.5.0" \ | |
ENV_MODE="development" | |
# Instala as dependências necessárias e habilita as extensões do PHP | |
RUN set -ex; \ | |
apt update; \ | |
apt install -y --no-install-recommends \ | |
apt-transport-https \ | |
libjpeg62-turbo-dev \ | |
libfreetype6-dev \ | |
libpng-dev \ | |
libxml2-dev \ | |
libonig-dev \ | |
libzip-dev \ | |
zip \ | |
netcat \ | |
libcurl4-openssl-dev; \ | |
\ | |
docker-php-ext-configure gd --with-jpeg --with-freetype; \ | |
\ | |
docker-php-ext-install -j$(nproc) \ | |
gd \ | |
pdo \ | |
mbstring \ | |
pdo_mysql \ | |
zip; \ | |
rm -rf /var/lib/apt/lists/*; \ | |
\ | |
curl -sSLo- https://getcomposer.org/installer | php -- --filename=composer --install-dir=/bin; | |
# Configura regras de exibição do log | |
RUN { \ | |
echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ | |
echo 'display_errors = Off'; \ | |
echo 'display_startup_errors = Off'; \ | |
echo 'error_log = /dev/stderr'; \ | |
echo 'log_errors = On'; \ | |
echo 'log_errors_max_len = 1024'; \ | |
echo 'ignore_repeated_errors = On'; \ | |
echo 'ignore_repeated_source = Off'; \ | |
echo 'html_errors = Off'; \ | |
echo 'zend.exception_ignore_args = Off'; \ | |
echo 'zend.exception_string_param_max_len = 25'; \ | |
} > /usr/local/etc/php/conf.d/error-logging.ini | |
# Configura o PHP para funcionamento da plataforma | |
RUN { \ | |
echo 'allow_url_fopen = On'; \ | |
echo 'default_charset = UTF-8'; \ | |
echo 'file_uploads = On'; \ | |
echo 'max_execution_time = 360'; \ | |
echo 'memory_limit = 128M'; \ | |
echo 'upload_max_filesize = 200M'; \ | |
echo 'open_basedir = none'; \ | |
echo "user_agent = \"Curl-OpenCartBrasil/${VERSION}\""; \ | |
echo 'post_max_size = 200M'; \ | |
echo 'session.auto_start = Off'; \ | |
echo 'session.use_only_cookies = On'; \ | |
echo 'session.use_cookies = On'; \ | |
echo 'session.use_trans_sid = Off'; \ | |
echo 'session.cookie_httponly = Off'; \ | |
echo 'session.cache_limiter = nocache'; \ | |
} > /usr/local/etc/php/conf.d/opencart-brasil.ini; | |
RUN set -aux; \ | |
curl -sSLo opencart.tar.gz "https://github.com/opencartbrasil/opencartbrasil/archive/refs/tags/v${VERSION}.tar.gz"; \ | |
mkdir -p /usr/src/opencart; \ | |
tar -xzvf opencart.tar.gz -C /usr/src/opencart --strip-components 1; \ | |
rm opencart.tar.gz; \ | |
mkdir -p /var/www/html/image/cache/; \ | |
mkdir -p /var/www/html/image/catalog/; \ | |
mkdir -p /var/www/html/system/storage/; \ | |
mkdir -p /var/www/html/system/storage/cache/; \ | |
mkdir -p /var/www/html/system/storage/logs/; \ | |
mkdir -p /var/www/html/system/storage/download/; \ | |
mkdir -p /var/www/html/system/storage/upload/; \ | |
mkdir -p /var/www/html/system/storage/session/; \ | |
mkdir -p /var/www/html/system/storage/modification/; \ | |
[ ! -f /var/www/html/config.php ] && touch /var/www/html/config.php; \ | |
[ ! -f /var/www/html/admin/config.php ] && touch /var/www/html/admin/config.php; \ | |
\ | |
chown -R www-data: /var/www/html/image/; \ | |
chown -R www-data: /var/www/html/system/storage/{cache,logs,download,upload,session,modification}/; \ | |
chown -R www-data: /var/www/html/admin/config.php; \ | |
chown -R www-data: /var/www/html/config.php; | |
VOLUME /var/www/html | |
EXPOSE 8888 | |
COPY docker-entrypoint.sh / | |
ENTRYPOINT ["/docker-entrypoint.sh"] | |
CMD ["php-fpm"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment