Se você deseja criar um site com o CodeIgniter "AppStarter" em curto período de tempo;
Além disso, gerencie recipientes do Docker com Portainer.
ARM64/AARCH64, x86-64
apk, dnf, yum, apt/apt-get, zypper
Crie regras para abrir portas para a Internet ou para um endereço ou intervalo IPv4 específico.
baixar com
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
Abra um terminal e cd para a pasta em que docker-compose.yml é salvo e executado:
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
chmod +x install.sh
./install.sh
Certifique -se de ter as versões mais recentes do Docker e Docker Compose instaladas em sua máquina.
Clone este repositório ou copie os arquivos deste repositório para uma nova pasta.
Certifique -se de adicionar seu usuário ao grupo docker .
baixar com
git clone https://github.com/damalis/full-stack-nginx-codeigniter-for-everyone-with-docker-compose.git
Abra um terminal e cd para a pasta em que docker-compose.yml é salvo e executado:
cd full-stack-nginx-codeigniter-for-everyone-with-docker-compose
Copie o ambiente de exemplo em .env
cp env.example .env
DATABASE_CONT_NAME o arquivo .env para alterar os valores de LOCAL_TIMEZONE , DOMAIN_NAME , DIRECTORY_PATH , LETSENCRYPT_EMAIL , DB_USER , DB_PASSWORD , DB_NAME , DB_TABLE_PREFIX , MYSQL_ROOT_PASSWORD , DATABASE_IMAGE_NAME , DATABASE_PACKAGE_MANAGER , DATABASE_ADMIN_COMMANDLINE , PMA_CONTROLUSER , PMA_CONTROLPASS , PMA_HTPASSWD_USERNAME e PMA_HTPASSWD_PASSWORD .
LOCAL_TIMEZONE = Para ver fuzileiros horários locais
Directory_Path = pwd At Comando Line
Database_image_name = mariadb ou mysql
Database_cont_name = mariadb , mysql ou custom name
DATABASE_PACKAGE_MANAGER = apt-get update && apt-get install -y gettext-base para mariadb, microdnf install -y gettext para mysql
Database_admin_commandline = mariadb-admin para mariadb, mysqladmin para mysql
e
cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
Alterar exemplo.com para o seu nome de domínio em ./phpmyadmin/apache2/sites-available/default-ssl.conf .
cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
Altere PMA_ControlUser e DB_Authentication_Password em ./database/phpmyadmin/sql/create_tables.sql.template file.
Em primeiro lugar: criará volume externo
docker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc
docker compose up -d
Em seguida, recarregando a configuração SSL do servidor da web
docker container restart webserver
Os contêineres agora estão construídos e em execução. Você poderá acessar a instalação do CodeIgniter com o IP configurado no endereço do navegador. https://example.com .
Por conveniência, você pode adicionar uma nova entrada ao seu arquivo hosts.
docker compose -f portainer-docker-compose.yml -p portainer up -d
Gerenciar o Docker com a Portainer é a ferramenta Definitiva de Gerenciamento de Contêineres para Docker, Docker Swarm com sua GUI e API altamente intuitiva.
Você também pode visitar https://example.com:9001 para acessar o Portainer depois de iniciar os contêineres.
O comando Docker PS mostra apenas contêineres em execução por padrão. Para ver todos os recipientes, use a bandeira -a (ou --l):
docker ps -a
Você pode iniciar os contêineres com o comando up no modo Daemon (adicionando -d como argumento) ou usando o comando start :
docker compose start
docker compose stop
Para parar e remover todos os contêineres, use o comando down :
docker compose down
Para remover o Portainer e os outros recipientes:
docker rm -f $(docker ps -a -q)
Use -v se precisar remover o volume do banco de dados que é usado para persistir no banco de dados:
docker compose down -v
Para remover o CertBot-ETC externo e o Portainer e os outros volumes:
docker volume rm $(docker volume ls -q)
Exclua todas as imagens, recipientes, volumes e redes que não estão associadas a um contêiner (pendurado):
docker system prune
Para remover adicionalmente qualquer recipiente parado e todas as imagens não utilizadas (não apenas as penduradas), adicione o sinalizador -a ao comando:
docker system prune -a
Para remover o Portainer e as outras imagens:
docker rmi $(docker image ls -q)
Copie todos os arquivos em um novo diretório:
Agora você pode usar o comando up :
docker compose up -d
https://docs.docker.com/engine/reference/run/
Você deve ver a página "Bem -vindo ao Codeigniter ..." no seu navegador. Caso contrário, verifique se a instalação do PHP atende aos requisitos do CodeIgniter.
https://example.com
Adicione ou remova o código no arquivo ./php-fpm/php/conf.d/security.ini para configurações personalizadas de php.ini
https://www.php.net/manual/en/configuration.file.php
Você deve fazer as alterações configurações de host personalizadas ./php-fpm/php-fpm.d/z-www.conf deve reiniciar o serviço, o FPM usa a sintaxe php.ini para seu arquivo de configuração-php-fpm.conf e arquivos de configuração do pool.
https://www.php.net/manual/en/install.fpm.configuration.php
docker container restart codeigniter
Adicione e/ou remova as pastas e arquivos do site CodeIgniter com qualquer programa de cliente FTP na pasta ./codeigniter/appstarter .
Você também pode visitar https://example.com para acessar o site depois de iniciar os contêineres.
Adicione ou remova o código no ./webserver/templates/nginx.conf.template File para configurações personalizadas do Nginx
https://docs.nginx.com/nginx/admin-guide/basic-functionity/managing-configuration-files/
Redis Cache, opções de configuração para conectar -se ao servidor Redis armazenado no arquivo de configuração do cache.
As opções disponíveis são:
<?php
namespace Config;
use CodeIgniterConfigBaseConfig;
class Cache extends BaseConfig
{
// ...
public $redis = [
'host' => 'redis',
'password' => null,
'port' => 6379,
'timeout' => 0,
'database' => 0,
];
// ...
}
O CodeIgniter apresenta invólucros em torno de algumas das formas mais populares de cache rápido e dinâmico. Todos os cache baseados em arquivos requerem requisitos específicos do servidor, e uma exceção fatal será lançada se os requisitos do servidor não forem atendidos.
https://codeigniter.com/user_guide/libraries/caching.html?highlight=cache
Você pode adicionar suas próprias configurações de configuração de configuração do Config.inc.php (como configuração de armazenamento) criando um arquivo chamado config.user.inc.php com as várias configurações definidas pelo usuário e, em seguida, ligando -o ao contêiner usando:
./phpmyadmin/config.user.inc.php
Você também pode visitar https://example.com:9090 para acessar o phpmyadmin depois de iniciar os contêineres.
A primeira tela Authorize (htpasswd; nome de usuário ou senha) e a tela de login phpmyadmin o nome de usuário e a senha é a mesma fornecida no arquivo .env .
Isso vai fazer backup dos arquivos e pastas em volumes de banco de dados/despejo SQL e HTML, uma vez por dia, e escreva-o para ./backups com um nome de arquivo como backup-2023-01-01t10-18-00.tar.gz
BACKUP_CRON_EXPRESSION: '20 01 * * *' o fuso horário da UTC.