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.

Sobre

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 principal
  • docker e docker 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.

dica
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 clone seguido 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:

Iniciar docker
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:

Verificar e construir docker
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:

Listar contenedores
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:

http://localhost:8090

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)

Parar contenedores
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 .dockerignore para 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 --)
Info
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: