1. A dor dos pontos a serem resolvidos
1. Não há necessidade de construir um ambiente de desenvolvimento de back-end.
2. Alterações no ambiente de desenvolvimento exigem apenas a alteração do espelho para atualizações síncronas.
3. Não há necessidade de ferramentas de IDE, como o Eclipse.
4. Projetos de desenvolvimento de comutação
2. Soluções
Use o Docker para iniciar imagens do Ubuntu, construir o ambiente de desenvolvimento exigido pelo projeto no contêiner, monte o código local no contêiner, use o volume de montagem para compilar e executar o código usando o ambiente no contêiner, e o host acessa os serviços no contêiner através da porta exposta pelo Docker, de modo que o desenvolvimento de dianteiro só precisa para implementar o Docker e o STA.
3. Sobre o Docker
Entenda o Docker
Este artigo não pretende explicar o conhecimento do Docker em detalhes. Existem muitos artigos relacionados. Se você estiver interessado, pode ler este livro. Estou limitado ao desenvolvimento dessa ferramenta para o uso do Docker. Se houver alguma coisa errada, aponte isso.
acelerador
Acelerador daoCloud
4. Construa um ambiente
Depois de baixar e instalar o Docker, podemos começar. O que estamos falando abaixo é Java, mas o mesmo se aplica a outros ambientes.
Obtenha a imagem do Ubuntu.
Docker Pull Ubuntu
Depois de concluí -lo, execute docker images e você verá uma imagem recém -atualizada.
Insira o contêiner
Docker Run -Ubuntu
5. Instale o software e configure variáveis de ambiente
Primeira atualização APT-Get
Atualização APT-Get
Em seguida, você pode usar apt-get install * para instalar o software necessário. Caso contrário, faça o download do pacote de instalação e instale você mesmo. Ao mesmo tempo, configure as variáveis do ambiente. Não vou entrar em detalhes aqui.
Vi. Inicie o serviço
Digite o diretório Tomcat, inicie o serviço e abra 0.0.0.0:8080 no navegador. Se nada estiver errado, você verá que o servidor não pode ser acessado. Isso ocorre porque o serviço que acabamos de iniciar está no Docker. Se não fizermos algumas operações, não poderemos acessar o serviço dentro do Docker.
Então, vamos sair do contêiner primeiro
saída
Depois de sair, execute docker ps -a e você pode ver que o contêiner que agora ainda está lá ainda está lá. A maioria das pessoas que é nova no Docker cometerá esse erro e pensa que o contêiner será destruído após sair do contêiner, mas na verdade não é o caso.
Se quisermos entrar neste contêiner novamente, podemos executar o seguinte comando, copie seu próprio ID de contêiner.
Docker Exec -It Recaier Id Bash
Embora o contêiner ainda esteja em execução, ele não é persistido. Para evitar que isso aconteça, ele será persistido o mais rápido possível depois de modificarmos o conteúdo no contêiner.
Docker COMMIT RECORTE ID Java
Este comando significa persistir nosso contêiner em uma nova imagem, chamada java.
Inicie esta imagem recém -criada.
Docker Run -it -P 8080: 8080 Java
Preste atenção à mudança em nosso comando de inicialização e há um comando -p adicional. Este comando significa expor a porta 8080 no contêiner ao host.
Visite 0.0.0.0:8080 novamente e podemos ver o pequeno gato, é tão fofo.
O que devo fazer se o contêiner ainda estivesse ocupando nossa memória agora? Mate -o.
Docker RM ID de contêiner
Nosso primeiro passo foi concluído e, em seguida, integraremos nosso código.
7. Código integrado
O contêiner que acabamos de iniciar é uma caixa preta completamente independente, que não tem idéia de onde está nosso código, por isso precisamos usar o volume de montagem do Docker para que o host e o contêiner possam compartilhar o diretório.
Desculpe, vamos matar o contêiner que acabamos de começar de novo.
Docker Run -it -v/Users/Nome/Web:/Opt/Root -P 8080: 8080 Java
Nosso comando de inicialização adicionou um novo membro -v. O significado deste comando é pendurar o diretório da web no diretório raiz do usuário no contêiner no diretório /opt /root.
Depois de entrar no diretório, podemos descobrir que os arquivos no diretório da web estão deitados em silêncio, como Mary Sue, que dorme há muitos anos está esperando sua ligação.
Comece a ligar.
MVN Clean Install -u -plocal -dskiptests
Após um período de tempo, veremos um prompt para embalagens bem -sucedidas. Copie o pacote de guerra para o diretório do TomCat WebApps e você pode acessar seu projeto.
Nesse ponto, nosso projeto finalmente começou a correr, mas existem vários problemas.
1. Você tem que executar um comando tão longo sempre? Muito problemático.
2. Toda vez que você altera o código, ele deve ser reembalado, o que leva muito tempo.
3. Como ler o log de inicialização? O que devo fazer se relatar um erro?
4. Como modificar o arquivo de modelo front-end sem reiniciar o serviço?
Com base nesses problemas, precisamos escrever um script para resolvê -los.
8. script de shell
O script fornecerá as seguintes instruções
-y update
-P Compile-Package-Release-Start Tomcat
-R Reinicie o tomcat
-C Arquivo Java Recompile - Liberação - Iniciar Tomcat
-W ouve os arquivos VM, sincronização padrão 5S uma vez
-L Visualize o Tomcat Log
-h ajuda
# Variáveis que precisam ser mudado######################################################## #####Omas ###Omas #####Omas ###Omas #####Omas ###Omas #####Omas Endereço de inicialização do projeto tom_root = "$ {tom_url}/webApps"# intervalo de audição de arquivos, unidade wt = 5# copie vmwc_vm = "src/main/webapp/web-inf/tpl/usr/share/tocat7/webApps/root/web-inf/"# cópia classe /usr/share/tomcat7/webApps/root/web -inf/" # Método geral # # use a nova função do pacote newwar () { # exclua pacote antigo rm -rf $ {tom_root}/* # move pacote de guerra mv $ {war_url} $ {Tom_root} /ro.warr # Restart Inicie o serviço $ {tom_url} /bin/startup.sh # Digite a cauda do log de inicialização -f $ {tom_url} /logs/catalina.out} # processamento de diretiva enquanto getopts ": yPRCWLH" OptNamedo Case "$ optName" em "y") ole "jar pacote" METNUT " reinicialização de Newwar ;; "P") ECHO "RACAGEM" MVN PACOTO LIMPO -P $ {dev} -dskiptests Newwar Restart ;; "r") eco "reiniciar o reinicialização do tomcat" ;; "C") eco "recompilar e reiniciar o serviço" MVN Clean Compile -P $ {dev} -dskiptests cp -r $ {wc_java} reiniciar ;; "W") ECHO "Comece a ouvir os arquivos VM" # Ouça VM Watch -n $ {WT} CP -R $ {WC_VM} ;; "L") Echo "Login" # Ouça VM Tail -f $ {Tom_url} /logs/catalina.out ;; "H") eco "-y Atualizar Maven Package -Compile -Package -Relase -Start Service de um balcão" ECHO "-P Compile e liberação de pacotes inicia o serviço" eco "-r reinicie o tomcat" eco "-c" Arquivo re -java e implantar o serviço "eco" -w -ou " -o arquivo" -o arquivo " -", ",", "," -o sinistro " -" -eco " -" -" -eco" -" -" -eco " -", " -" -eco " -" -"-w -sinaga" -" -" -eco " -" -" -" -w " -echos", sinalizando o arquivo 5s. ;; ESAC 9. Promova para a equipe
Após as três etapas acima, nossas ferramentas foram construídas, mas como os outros podem usá -las?
Docker fornece serviços em nuvem. Se nossa imagem for pequena o suficiente, podemos empurrar a imagem para a nuvem para que outras pessoas baixassem e executem, mas nossa imagem excedeu 1G. . . Portanto, não podemos usar esse método.
Docker Save Java -o ./java.tar
Use o comando acima para persistir a imagem no arquivo local java.tar e, em seguida, transfira -a para as máquinas de outros colegas de classe por outros meios. Usamos airdrop, alguns minutos de coisas.
Docker Load -i java.tar
Outros alunos podem usar esse comando para carregar nossa imagem em seu Docker.
Em seguida, integre o script do shell ao diretório raiz do projeto e você poderá usá -lo feliz.
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo seja de ajuda para o seu estudo ou trabalho. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.