Como iniciar o Site em máquinas locais?
O site web pode ser visualizado de maneira local (em computador pessoal, por exemplo), para fazer testes, propor mudanças e estudar sobre o gestor de conteúdos.
O presente documento é escrito baseado no uso de sistemas operacionais livres (GNU-Linux)
Requerimentos
Verificar que tenha instalado uma versão atualizada dos seguintes programas:
git: para copiar o repositório localmente, fazer controle das versões (mudanças realizadas) e enviar mudanças para o repositório principaldockeredocker compose: para criar um contenedor - docker - (espaço separado do sistema operacional) e para rodar o Site e facilitar que o Site "rode" no seu computador.
"docker compose" é a ferramenta que permite definir e operar o aplicativo que está no contenedor.
Outros "requerimentos" são:
- Conhecimento básico de uso da linha de comando (terminal) em sistemas operacionais GNU-Linux
- Usar um sistema operacional GNU-Linux (para usar docker em outros sistemas, é necessário consultar)
Clonar o repositório
Existem várias formas de criar uma cópia do repositório. Uma delas é usando as seguintes instruções num terminal:
git cloneseguido do endereço do repositório git do site. Assumindo que o site estivesse no git do disroot, seria:
git clone https://git.disroot/PFSite.git
Criar o docker dentro da máquina local
Criar um arquivo de configuração ".env"
Para isso é necessário verificar que exista um arquivo chamado ".env" para iniciar o docker. Você pode copiar o arquivo de exemplo
renomear como ".env". Por exemplo, num terminal, ir no diretório principal do site, e usar a instrução "cp" para copiar:
cd SitePecuariaFloresta # localizar o diretório principal do Site
cp .env.example .env # Copiar o arquivo ".env.example" para ".env"
O arquivo pode conter o nome do porto "http" (HTTP_PORT=8090) onde será mostrado o Site na máquina local Se for 8090, então você pode achar o site após rodar o docker , digitando o seguinte endereço no navegador web:
http://localhost:8090
Inicializar o docker usando "docker compose"
PS: usar a instrução "sudo" antes dos comandos para permitir que sejam executadas as instruções no terminal.
Abrir um terminal no diretório principal do Site e executar:
cd SitePecuariaFloresta
docker compose ps # Para listar contenedores ativos dentro da sessão - não deve aparecer nenhum docker
docker compose up -d --build # Irá construir o contenedor, se for a primeira vez que é iniciado o site nessa máquina
Verificar se o docker iniciou, usando a seguinte instrução:
cd SitePecuariaFloresta
docker compose ps # Para listar contenedores ativos dentro da sessão - agora deve aparecer ativo
# Se o serviço estiver rodando, deve aparecer uma saída no terminal como a seguinte:
#
# NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
# pecuariaflorestasite-site-1 pecuariaflorestasite-site "/docker-entrypoint.…" site 2 minutes ago Up 2 minutes 0.0.0.0:8090->80/tcp, [::]:8090->80/tcp
Se o contenedor for construído sem erros, você pode visitar o seguinte endereço no navegador web que use e o Site deve aparecer ai:
Se você deseja parar o contenedor, pode usar docker compose, com a seguinte instrução num terminal no diretório principal do Site:
O docker pode ser pausado sem remover os aplicativos e posteriormente reinicializado (docker compose start)
docker compose stop
Essa instrução permite deter os contenedores e remover contenedores, redes, volumes e imagens criadas usando docker compose up
docker compose down
Posteriormente pode ser iniciado novamente o docker com a seguinte instrução ("build" pode ser usando quando existam mudanças na configuração)
docker compose up -d
Dicas para usar docker com Docusaurus
- Usar uma imagem docker leve (Alpine é comumente recomendado, por exemplo)
- Usar
.dockerignorepara evitar usar imagens muito grandes - Organizar arquivo docker por estágios (linhas organizadas, unificar instruções, evitar excesso de código)
- Verificar continuamente os arquivos de docker (
docker sytem df,docker sytem df -v) e eliminar os desnecessários (docker prune --)
Exemplo de arquivo docker para Docusaurus
Exemplo de Dockerfile:
# Stage 1: Build
FROM node:14 AS build
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
RUN npm run build
# Stage 2: Final Image
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Informações adicionais
Veja mais informações sobre como fazer deploy do site com docker, para testes e em produção, nesse link:
- https://docusaurus.community/knowledge/deployment/docker/
- https://spmse.github.io/dev-blog-template/doocs/guides/deploy-docusaurus-with-docker-and-nginx Veja opções para deletar arquivos em docker:
- https://docs.docker.com/engine/manage-resources/pruning/
- https://useful.codes/keeping-images-lightweight-in-docker/