Skip to content

Instantly share code, notes, and snippets.

@valdeir2000
Created June 2, 2021 17:02
Show Gist options
  • Save valdeir2000/ecf394f12c2ef87c1456a5d737667284 to your computer and use it in GitHub Desktop.
Save valdeir2000/ecf394f12c2ef87c1456a5d737667284 to your computer and use it in GitHub Desktop.
#!/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 "$@"
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