Instalação/Configuração do Ambiente de Desenvolvimento

  1. É obrigatório configurar o ambiente de desenvolvimento usando um dev container?
    Resposta: Não! A opção dev container é sugerida para facilitar o processo de instalação, uma vez que na maior parte dos casos, o setup do dev container é trivial. No entanto, observámos casos onde surgiram problemas (e.g., em computadores com poucos recursos ou em certas instalações WSL). Nesses casos, se a solução não for óbvia, pode ser mais fácil/rápido fazer a instalação manual.

  2. Na criação do dev container, o comando Create and Mount está a dar permission denied. Como resolver?
    Resposta: Este problema pode ser resolvido dando permissões ao utilizador actual para correr o docker. Em Ubuntu: sudo usermod -a -G docker USERNAME, em que USERNAME pode ser obtido com o comando whoami

  3. No ambiente do dev container, tentei aceder à base de dados, mas o utilizador root não tem permissões. Como resolver?
    Resposta:
    Pode-se aceder à base de dados com o utilizador postgres. Para isso, podemos executar su - postgres . Depois disso, pode-se aceder à base de dados com o comando psql

  4. No ambiente do dev container, o comando npm install resulta num erro EACCES relacionado com permissões de acesso a /root/.cache/Cypress. Como resolver?
    Resposta: Como o dev container é um ambiente isolado do resto do sistema, uma solução fácil é dar permissões de escrita em /root a todos os utilizadores. Isto pode ser feito com chmod -R 777 /root. Atenção: esta solução não é recomendada para ambientes que não sejam o dev container.

  5. Os meus testes de serviço com valores que violam invariantes falham na verificação do estado da base de dados: apesar de ter sido lançada uma excepção, há um elemento persistido na base de dados. Como resolver?
    Resposta:
    É possível que este problema ocorra devido ao uso do atributo Cascade nas anotações adicionadas às entidades já existentes. Pode resolver removendo o atributo cascade. De qualquer forma, no enunciado só se pede para verificar o estado da base de dados nos testes de web service. Para mais detalhes ver mensagem no canal #general (7/3/2024, 06:59).