Transcrições
1. Introdução: Bem-vindo ao meu curso sobre
escuro e docker-compose. É tão bom tê-lo aqui. Neste curso,
você aprenderá como criar um
projeto real do zero. Você não
aprenderá apenas alguns recursos do medicamento ou da
documentação oficial. Você verá no exemplo
real que consiste em cinco microsserviços, como podemos melhorar nosso
desenvolvimento e implantação locais. Começaremos com a
pasta vazia e terminaremos com o aplicativo real
que estará sendo executado em nosso servidor
de produção. Não há
coisas teóricas lá dentro. Você aprenderá a menos que a
equipe que realmente precisa
para usar o Docker e Docker Compose para seus próprios aplicativos,
como contêineres, imagens, volumes, redes
e muito, muito mais. Ao final deste curso, você certamente
poderá criar seus próprios aplicativos de qualquer complexidade usando
docker e docker compose. Quem sou eu? Meu nome é Alexander coesão e
sou desenvolvedor web, tinha mais de dez
anos de experiência, bem
como um
instrutor profissional com vários cursos sobre tecnologias
web. Fiz o meu melhor para colocar
todo o meu conhecimento dentro deste curso e
quero compartilhá-lo com você. Então, seja bem-vindo a bordo
e vamos começar.
2. Por que você precisa de docker?: em mídia de tese. Quero esclarecer por que Darwiniano mais escuro. Então, basicamente, a primeira pergunta é o que é DACA se você vai para o site oficial. Eu não conseguia me acalmar. Há um link y docker e aqui você pode ler algo sobre o desenvolvimento com DACA. Então, basicamente, a idéia principal é que estamos desenvolvendo um monte de EPS hoje e são diferentes frameworks, diferentes linguagens, diferentes arquiteturas e ferramentas diferentes, e tudo isso aumenta a complexidade. E este é exatamente o problema que o falador está tentando resolver. Vamos apenas imaginar um caso de uso simples. Por exemplo, você está fazendo algum aplicativo sem SIG. Então é só um site e você não tem bacon. Nenhum brinde foi, por exemplo, expresso. Então você tem alguma base de dados, por exemplo mongo db, e você tem alguma frente e digamos reagir. E basicamente, talvez este seja o pequeno projeto. Então, estas são três coisas principais que você precisa de banco de dados back-end e front-end. E a questão é que, em algum momento, você quer abrir seu resfriado em outra máquina, que problema você terá? O primeiro problema é lembrar todas as tecnologias que você usou, por exemplo, usar alguma versão fora do nó, e talvez você desenvolveu seu projeto como um ano atrás ou dois anos atrás e ele atualizou com a nota recente? E então você só usa este projeto em sua máquina. Você instala o nó mais recente e, em seguida, nada está funcionando porque basicamente, algo está dentro. Nenhuma cadeira foi trocada, o que é bom, mas basicamente não olhamos nenhuma versão dentro do nosso projeto. E talvez nem nos lembremos de qual versão do nó irá para lá. E o mesmo acontece com todas as ferramentas que você usou. Por exemplo, ele pode ser banco de dados e, em seguida, você instalado no banco de dados Cuba, e então você precisa fazer taxa de seus dados de alguma forma, porque a versão é diferente e isso não lhe dá estabilidade fora de desenvolvimento. Eu acho que se você está olhando para os sírios, você já tem alguma experiência e algum problema em habilidades, que significa que você pode ser trabalhado em alguma equipe e empresa, e basicamente, normalmente quando você vem para alguma empresa, você precisa configurar sua máquina. E eu diria pela minha experiência em quase todos porque é um processo muito difícil, como você precisa configurar um monte de programas em sua máquina, às vezes com específico onde Shen talvez haja uma empresa. Documentação como como instalar tudo, mas está desatualizado. E então algo está quebrado e você precisa corrigi-lo e pedir como pessoas diferentes na nova empresa para configurá-lo corretamente. E pode levar uns 23 dias. E eu tive essa experiência e eles viram outras pessoas lutando. E então esse processo continua uma e outra vez para cada nova pessoa em uma empresa, e o médico resolve exatamente esse problema. Então, basicamente, você tem certeza de que você está frio está trabalhando exatamente o mesmo lá. Qualquer máquina, não está nos trabalhos da minha máquina, e então outra pessoa pode começar. Isso é como fácil a bordo em quatro desenvolvedores diferentes, fácil suporte, e você tem certeza de que seu projeto vai funcionar. Eu falei apenas sobre desenvolvimento, mas e sobre implantação? Digamos que queremos mover nosso dedo frio o servidor para que ele fique acessível na Internet para todos. E isso é como um processo padrão. Estamos fazendo isso com todos os projetos, e basicamente há sempre problemas lá, como você deseja implantar seu aplicativo Jess conhecido. Você acabou de correr para o servidor. Você precisa instalar não lá com versão específica E o que você vai fazer quando você tem vários projetos diferentes lá com diferentes versões de nós ou com diferentes dependências? E então você instalou uber em ferramentas mais recentes e, em seguida, talvez todas as ferramentas que você não precisa mais porque algum projeto é obsoleto. E então você só tem uma bagunça com bibliotecas diferentes, versões
diferentes. E tudo isso é incontrolável. Inferno, talvez você se lembre de como as pessoas estavam implantando projetos anteriormente, por exemplo, com o FTP Klein como o vil zilla, eles eram Korpi em apenas arquivos fora do projeto diretamente para o servidor. Então, é
claro, as pessoas entenderam que não é escalável. Pessoas diferentes podem implantar coisas simultaneamente e assim por diante. E ali. Vamos lá você ferramentas como, por exemplo, instável ou fantoche, onde você apenas contrite recita o que você precisa fazer para implantar seu aplicativo. Sim, claro, é mais fácil com essas ferramentas, mas não resolve o problema. Quer ter um resfriado estável, que será exatamente o mesmo em todos os lugares onde podemos iniciar nosso código com um comando para desenvolvimento localmente, e podemos implantá-lo em qualquer quantidade fora de servidores com apenas um comando e gerenciá-lo facilmente ? Não posso, claro, dizer que o médico é uma bala de prata. Claro que não é, mas ele aborda e resolve muitos problemas para projetos pequenos, médios e enormes. E muitas empresas em todo o mundo estão usando docker com sucesso e realmente não é . Pequeno. Projeto é uma solução realmente estável que foram usados muitos anos já. Dr. Hoje em dia é um enorme ecossistema com diferentes produtos, serviços
pagos, serviços
gratuitos, diferentes ferramentas e assim por diante. E quando comecei a aprender, Docker para mim era a questão. O DACA resolve os meus problemas? Não era como se DACA fosse nova coisa legal ir. Eles querem testá-lo. Eu realmente queria resolver meus problemas e meu problema waas que eu quero um ambiente consistente de
desenvolvimento e produção onde ele funcionará em qualquer máquina da mesma maneira e eu não vou lutar e isso é exatamente o que eu quero cobrir neste curso. Não se trata de aprender Dhaka do início ao fim e aprender todas as ferramentas que existem Docker. É apenas para resolver o problema fora do desenvolvimento de consistência localmente e implantar no projeto para produção com o mesmo bife, fácil e sem problemas. Se você tiver quaisquer comentários ou perguntas, sinta-se livre para me perguntar e eu vou respondê-los com certeza
3. Planejando nossa aplicação: neste vídeo. Eu quero falar sobre Dr Tools que vamos usar em nossa aplicação e falar sobre estrutura fora de toda a aplicação. Então, primeiro, vamos falar sobre ferramentas. As únicas ferramentas adicionais que usaremos, exceto fora do médico em si é docker compor. Nós não vamos usar quaisquer outras ferramentas no discurso em todo o documento em si é realmente baixo nível do dedo do pé , então se nós usamos falar com ela diretamente, nós precisamos escrever um monte de comandos diferentes. No console foi atributo diferente, que às vezes é difícil lembrar, e queremos usar Docker compor como um simples de rapper para DACA de que gerencia, uma
forma fácil, nossos contêineres. Basicamente, com a composição do Docker, podemos descrever como todos os nossos contêineres serão construídos e como eles se comportarão em
ambientes diferentes . Se você sabe algo sobre DACA. Talvez a pergunta agora seja. E quanto à máquina de encaixe ou Dockers? Quente ou fresco? Burnett é, e assim por diante. Vou falar sobre isso? A tecnologia está no curso, e então minha resposta é não. Vamos levá-lo crocante e pequeno com estoque um compor e esta é uma ferramenta muito agradável, e você só precisa ist'll. Uma ferramenta, exceto o próprio Dhaka, é
claro, para implantar os aplicativos de tamanho pequeno e médio a partir do meu ponto de poucos, 90% de desconto na Internet pode existir com projetos em Sarah única com, por exemplo, único banco de dados e com iniciado com docker compose, podemos facilmente gerenciar, comer e implantar nossos projetos e desenvolvê-los localmente. E mais tarde, se você precisar, você pode investir seu tempo e dinheiro em soluções escaláveis para um monte de serviços como, por exemplo, nativos
Cooper e melhorá-lo lá. Mas normalmente você está em mais 10% de desconto na Internet, e este curso não é suficiente para você. Agora vamos falar sobre o nosso projeto. Basicamente, não
é um projeto que eles pensaram que não existe. Este é o projeto rial que eu desenvolvi não há muito tempo, por isso é 100% riel e funciona muito bom na produção sem problemas. Usando Chazz, DACA e Docker compor. Eu gosto deste exemplo porque ele mostra as possibilidades com Docker compor e é realmente adequado para a maioria dos projetos que as pessoas podem desenvolver, que significa que depois de terminar o discurso, você pode usar tudo o que implementamos para criar seu projeto próprio. Então, o que temos aqui? Temos uma frente e parte fora da nossa aplicação, que estaremos fazendo em reagir. Basicamente, não
vamos. Certo. Qualquer código direto do rial, como criar o aplicativo inteiro ou algo assim? Nossa idéia é que na frente, e nós apenas temos um aplicativo direto que pode ser iniciado. Então, basicamente, esta frente e parte é o nosso primeiro serviço e por que estamos falando sobre serviços serviço significa algo isolado, que significa que podemos apenas tomar este serviço, por exemplo, front e e desenvolver comer por conta própria se queremos por que o serviço é um bom porque cada serviço é completamente escopo e pode usar diferentes tecnologias dentro de diferentes estruturas e assim por diante. Por exemplo, você pode dizer, OK, meu primeiro serviço com uma torta está usando cadeiras conhecidas, e meu segundo serviço com o cara está usando rubi,
por exemplo, e eles estão completamente isolados e eles simplesmente funcionam em seus aplicativos simultaneamente. Ok, então nossa primeira frente de serviços e onde vamos obter dados. Basicamente, precisamos de epinefrina. Eu que rublo excesso na nossa frente. E então eu dividi a nossa torta em dois serviços diferentes. Um a torta está relacionado com pagamentos de usuários e todas as coisas que estão relacionadas aos usuários. Então isso é algo como autenticação do FBI. Portanto, só está relacionado com os usuários Fora do curso que precisamos armazenar em algum lugar todos os dados do nosso A p I . Precisamos de uma base de dados para o nosso serviço Sul. Eu vou dormir. Eu serviço. Então, basicamente, precisamos em seu serviço, que será um serviço de banco de dados. Então, teremos dentro banco de dados Mongo DB para o nosso serviço de autenticação. Como já disse, temos outro dia. Este império é menos importante. Isso está relacionado a todas as entidades que temos em nossa aplicação. Então, basicamente, por exemplo, colocar fora os usuários ou comentários ou categorias, ou eu não sei que três fora das categorias e assim por diante. Então, basicamente, não é coisa tão importante. Então, basicamente, este é exatamente o ponto de eu dividi-lo em diferentes serviços, porque quando eu estou trabalhando com isso, uma base fora de usuários de pagamentos, eu preciso ser super focado. Eu não posso fazer um “nunca “lá. Mas quando estou trabalhando com o banco de dados desligado, algumas coisas não tão importantes, como atualizar a categoria e apenas quando uma categoria no site está quebrada, não
é grande coisa. Mas quando o pagamento do cliente é perdido, é como a tragédia. Ok, então só para esclarecer por enquanto, eu falei sobre frente e serviço nosso serviço de sindicação, serviço de banco de dados de
autenticação e serviço de banco de dados do FBI. Então temos, por enquanto, cinco serviços. Agora, mais
um serviço e este é o serviço Mailer. Basicamente, para mim, este é o serviço que precisamos em cada aplicação. Mas talvez se você não tem Malin ou autenticação, você não precisa disso. Basicamente, todas as coisas que estão relacionadas com os usuários Malin estão fazendo lá. Então, basicamente, se o usuário está registrado e ele recebe um e-mail ou ele esqueceu o passaporte, ele recebe um e-mail. Isto é o que este serviço está a fazer. Então, basicamente, se você tem alguma identificação masculina, eu mudei para serviço adicional. E agora mais um serviço. E sem este serviço, não
podemos sair com certeza, e este é n serviço jinx. Basicamente, se você não sabe o que está em jinx, esta é realmente uma ferramenta útil, que é realmente um balanceador de lote e tem observador e o proxy e realmente o que você quiser. Então, em cada projeto você deseja configurar onde, por exemplo, seus pedidos para entrar quando eles estão chegando ao seu host? Digamos que sua anfitriã comida bar ponto com. Então, basicamente, se a sua missão é bar cheio que veio você queria ir para o seu front-end. Mas se é barra AP I a Dent e eu não sei Post, então você quer ir para o nosso pagamento e assim por diante. Então, basicamente, este serviço irá configurar o motor ICS dentro e irá resolver todos os buracos e todas as secas fora de nossa aplicação. Então é isso. Estes são todos os serviços que vamos implementar neste carros. Mas talvez se o seu projeto é menor, você pode sair apenas com front-end e, em seguida, acenou com o seu céu e adicionalmente banco de dados , que significa que você precisa dele pelo menos três serviços e, claro, n azarado. O que nos leva a quatro. Então, esta é a menor quantidade fora de serviços que eu vejo possível para aplicação normal com frente e acenou. Se você manteve, por exemplo, na chuva tendência acenada, digamos que você tem como rubi sobre trilhos e simplesmente modelos em Beck, e então você não precisa, é
claro, front-end. E este é apenas um serviço para acenado, um para banco de dados e um para in jinx. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu vou respondê-los com certeza.
4. Instalando ferramentas: neste vídeo. Eu quero falar sobre ferramentas que precisamos instalar, a fim de começar a desenvolver maneiras
mais escuras . E a ferramenta mais importante para nós é a escuridão. Uma mesa espero que sim. Basicamente, esta é a instalação escura que tem tudo dentro que precisamos. Então, basicamente, aqui no site oficial da docker, você pode ir para o produto e aqui está escuro A desktop. Você acabou de clicar no link e aqui você tolera Ex-Quest elogiado, por exemplo, ou para o Windows. Então, apenas instalou este aplicativo. E depois da instalação, você tem algo assim no seu bar quando ele começou. Como DACA desktop está sendo executado então basicamente apenas começou e ele trava aqui no bar e isso significa que podemos desenvolver nossos aplicativos com conversa. Então eu já tenho DACA desktop instalado e vamos verificar se temos capacidade de trabalhar com ele . Então, basicamente, eu estou aqui no console e se eu vou doca seca menos versão, por exemplo, ele deve me dar uma aversão escura. Esta coisa está disponível através deste cão uma área de trabalho. Agora, se estamos escrevendo, por exemplo, ajuda
médica, então vamos ver um monte de comandos que são possíveis de usar porque aqui o médico
já estava instalado. Agora, em relação a outras ferramentas. Basicamente, quando você na janela de encaixe estilo para desktop, você começa cabelo escuro e encaixe compor. Então, basicamente, aqui eu posso secar docker compor menos moda, e eles também obter sua saída. Essa composição de encaixe está instalada, e basicamente a idéia de uma composição mais escura e escura é que você não precisa instalar nada. Além disso, digamos que estamos certos em nossa torta sem jazz. Isso não significa que precisamos instalá-lo em nosso computador. Queremos instalá-lo através do encaixe dentro de contêineres. Isso significa que nossa máquina estará sempre limpa e não terá instalações desnecessárias. Mas no âmbito deste curso, eu recomendo que você instale jazz conhecido na própria máquina jovem do site oficial. Não precisas de o fazer quando sabes que o Darkened compôs ultimamente. Mas neste curso, eu quero mostrar-lhe esta migração fora de seu desenvolvimento local dentro do Dhaka, e será mais fácil mostrar-lhe se Bushehr nota e em PM disponível em seu console. Como você pode ver, eu já tenho nota Soutine russo realmente não importa muito. Pelo menos você precisa ter algo melhor que 10. Basicamente, no site oficial, você simplesmente precisa baixar aqui seu pacote para nó, por exemplo, Para 12 ou para 13. Na verdade, não importa muito. Então, quando você instalá-lo em seu nó de console versão menos deve dar-lhe com uma
versão antiga . Se você obter essa saída, isso significa agora que sua máquina está instalada corretamente e você está pronto para começar. Então, se você instalou com sucesso um médico e uma nota em sua máquina, então você está pronto para iniciar este curso e você não precisa de quaisquer outras coisas para ser instalado . Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
5. Criando um arquivo de docker: neste vídeo, vamos começar com a criação do nosso arquivo docker e Docker compor basicamente aqui. Nem sequer criei a pasta para os nossos projectos. Então, estamos começando com um arranhão completo. Então acho que podemos nomear nosso Projeto Mundo Riel com algumas palavras de médico. Então, digamos que é o Riel World. Dr. Então, neste caso, entendemos que este é realmente um exemplo mundial onde estamos escrevendo código para o projeto com DACA. Então aqui eu quero começar o editor e nós não temos nenhum arquivo ainda. Então o primeiro arquivo que eu quero criar é falar aqui composto dot jahmal. Então este é o arquivo onde vamos escrever nossa configuração docker compose. Já falei um pouco sobre a composição do Docker,
mas vamos checar o Google. Então, basicamente, nós estamos apenas para a direita no Docker compor e saltar dentro do site oficial para a composição. E basicamente aqui está a idéia fora do composto. Então, esta é uma ferramenta na
qual definimos juntar-se contêineres de docker, o que significa que criamos um arquivo jahmal e esta é a descrição de como nossos
serviços de aplicativos funcionarão. Como iniciará e interromperá contêineres que configurações e ambientes estão contidos contêineres precisam
para ambientes diferentes, por exemplo, para desenvolvimento local fora de uma produção e assim por diante. Então, basicamente, a partir do meu ponto de poucos, Docker é ferramenta de baixo nível onde você precisa escrever muito. Mas isso é super flexível e Docker compose é um bom rapper de alto nível onde você simplesmente declara. Lee descreveu o que você quer alcançar e Docker compor é devido em tese com DACA. Então vamos começar a escrever em nosso Docker compor a primeira coisa que precisamos dizer Aqui está uma versão e, basicamente, como o Dr. Composer estava evoluindo, versão muda. Isso significa que a sintaxe compor docker e as propriedades são diferentes em versões diferentes e agora temos três russos, que é os
EUA EUA e vamos apenas especificar aqui. Então o Doctor sabe que versão estavam usando. E a próxima coisa que precisamos descrever aqui são serviços e basicamente os serviços que iremos aqui são exatamente serviços que discutimos quando planejamos nossa aplicação. Então, basicamente, precisamos aqui para ter frente e serviço e, em seguida, banco de dados do FBI e da EPA e assim por diante . Vamos começar com um serviço apenas para verificar como ele funciona em tudo. Então este será o serviço para o nosso Ikea. E só para lembrar que nosso FBI é um serviço onde não temos dados específicos do usuário. Então, por exemplo, as categorias posam e todas essas coisas que temos dentro da nossa torta Então a próxima coisa que queremos especificar aqui anos, qual pasta nasceu para chegar ao arquivo Dhaka e agora as perguntas são versáteis é o que é o arquivo
DACA. Então, basicamente, aqui você pode ver a estrutura fora do nosso projeto que temos aqui Rail World ocorrer e apenas um arquivo Nós vamos criar várias pastas basicamente aqui. Queremos especificar. Ok, nós temos aqui frente e e nós temos aqui qualquer pasta de pizza e nós temos aqui horas, pasta e assim por diante e assim por diante. Então, basicamente, cada serviço será uma pasta e mais tarde vamos discutir como mover essas pastas. Dois depósitos adicionais. Então temos como, por exemplo, para a frente e apenas um único representante. Oh, e nós podemos apenas desenvolver com este rapper. Mas por enquanto, vamos colocar todas as pastas para todos os serviços dentro deste projeto. E basicamente, a idéia é que docker compor lê os arquivos falantes de cada pasta como de cada serviço. E vamos verificar o que é o arquivo médico em um segundo. Então vamos pular para o Google e o arquivo médico direito. Então, basicamente, como você pode ver, a documentação de Dhaka é realmente bom e você quase sempre um salto no reboque. Esta documentação em como o primeiro link quando você escreve algo em relação a Dhaka. Então, basicamente aqui é a referência do arquivo médico e o que é o arquivo DACA? Dr. File é um documento de texto que contém todos os comandos fora do usuário que serão acionados quando criarmos uma imagem. Então agora a questão é o que é imagem? Digamos que você instale o Lennox em algum servidor ou apenas em sua máquina local e use uma imagem para isso. Então, basicamente, a imagem é algo como um instantâneo como sua instalação será semelhante e este é exatamente o caso. Digamos que temos apenas uma imagem. Então, basicamente, que muito encontrar instalação onde temos dentro como Lennox, como distributivo básico com, por exemplo, agora instalado e quando usamos esta imagem para criar e você distributivo para instalá-lo, basicamente vamos sair de a caixa, não apenas desenhar Lennox. Mas também note, por exemplo. Mas pode ser um pouco complicado no início, mas você verá isso em um segundo. Então vamos entrar no FBI, por exemplo, e criar em seu documento, que é chamado arquivo DACA com grande letra. Então, basicamente, como eles disseram, temos agora Docker compor. Isto é como a composição de tudo. Então esta é a coisa de alto nível que gerencia tudo e em uma torta, o arquivo de encaixe. Então, basicamente, teremos arquivo DACA em cada pasta, como em cada serviço e no arquivo Dhaka que especificam como, exatamente com este serviço deve ser preparado. E a primeira coisa aqui a dizer é de então basicamente a partir de meios de que imagem queremos
tomar , podemos dizer aqui que queremos imagem nó e aqui podemos especificar a versão. Por exemplo, não 13. Então isso significa que vamos criar neste arquivo taco do que sua imagem com No. 13. Isto significa que esta imagem não faz nada com apenas prettified. Para o FBI,
precisamos de uma imagem onde o nó versão 13 já está instalado. Para o FBI, É isto. Nós não especificamos mais nada e os leads saltam de volta para dentro da nossa docker, então basicamente aqui dentro da nossa ik eu gostaria de especificar de que pasta? Que este FBI está relacionado. Então, basicamente aqui podemos dizer construir E esta é a propriedade especial onde estamos dizendo que queda isso deve ser usado Então basicamente aqui estavam dizendo apenas ponto barra ap I Então esta é a pasta onde Docker compose estará procurando por nosso arquivo de encaixe isso é exatamente o que especificamos. Não vamos fazer mais nada e tentar encaixar, compor, construir e entrar. E como você pode ver aqui nós temos a mensagem construída em um céu que significa encaixar compor vê nosso serviço A p I que nós definimos e agora você pode ver que este é o primeiro passo de um e nós temos esta linha de No. 13 que foi certificado em arquivos de Dhaka, o que significa que DACA composto vê o nosso no No. 13 e entende como ele precisa instalar a imagem para thes e chi e basicamente pode ver aqui. Puxando do nó da biblioteca e puxando está vindo aqui, o que significa que estamos baixando da Internet. A imagem para No. 13 basicamente agora em nossa máquina. Nós baixamos imagem para No. Dois times e vamos verificar. Vou começar mais uma vez. E como você pode ver, foi como super rápido porque nós já baixamos esta imagem e nós temos comer em nossa máquina
local. É por isso que não precisamos do dedo do pé. Não o senhor mais uma vez e DACA entende e apenas construir o que dissemos então basicamente apenas levou isso do Norte 13 que está disponível localmente. E esta é a última linha aqui, bem sucedida Tag it, Real Docker, um médico do mundo real. Basicamente, este é o ponto chave. O que nós ouvimos a partir da nota de imagem 13 que criamos em sua imagem e esta imagem Israel Mundo Doutor Uma torta mais recente. Então, basicamente, a idéia é que tomamos alguma imagem base, por exemplo imagem com nó e, em seguida, criamos nossa própria imagem para o nosso projeto. Neste caso, podemos fazer mais coisas do que apenas tomar o Norte 13 porque basicamente, se não precisarmos de mais nada, podemos simplesmente pegar essa imagem diretamente e não criar nossa própria imagem. Mas aqui está a idéia de que vamos fazer mais coisas aqui o que significa para o nosso serviço. Nós sempre criamos à sua imagem. E se essa imagem for baseada em alguma imagem básica, como você pode ver, você não deve usar comandos do Docker diretamente ao usar a composição de encaixe. Então, basicamente aqui você não fez Então como a imagem escura deve ser puxada, como ela deve ser construída e assim por diante porque Docker compose está fazendo tudo para nós e esta é uma solução realmente estável e nós apenas definimos como trabalhamos no trabalho. Então, como você pode ver com Chester quatro linhas aqui e uma linha dentro do nosso arquivo docker foi criado com
sucesso em sua imagem que vamos usar mais tarde para o nosso uma torta. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
6. Criando um aplicativo api: na mídia. Quero criar nosso aplicativo conhecido para um serviço de torta. Fora do curso. Não criaremos todo o aplicativo do zero. Vamos apenas grande para rotear para que possamos testar que a nossa aplicação império está funcionando, porque esta maldição é foco total no mais escuro e não sobre a criação e aplicação Js conhecido. Então, para estes, primeiro lugar, precisamos saltar para dentro da nossa pasta do FBI. Aqui estou eu, dentro de uma torta, e eles não têm nada além do arquivo médico. Então, basicamente aqui eu quero escrever em PM que você precisa e bater. Entrar. E esta é uma ferramenta para criar um pacote, Jason. Então, como você pode ver, este utilitário criará nosso Peca. Jason, podemos apertar Enter. Não importa o que temos aqui, e nosso piquete Jason será criado. Então, como você pode ver agora, nós temos pacote Jason, e nós podemos verificar como ele se parece com o editor. Então, basicamente, isso é apenas simples Picket Jason. E agora podemos adicionar alguns pacotes que eu quero instalar aqui express. E se você não sabe o que expressa este é o quadro mais popular para cadeiras conhecidas para criar aplicativos. Então, basicamente, foi simplesmente chegado em PM em estilo expresso. E aqui está. Nosso expresso será instalado localmente para que você possa verificar aqui dentro do pacote Jason
que agora expressamos como uma dependência. Também é importante ver que agora temos modelos de nó e pacote de arquivo de bloqueio de pacote Lakis . Tudo bem. Este é o arquivo de bloqueio para nossos pacotes, mas nenhum modelo que queremos ignorar. Então, basicamente, como conhecemos modelos em diferentes pastas, podemos ignorá-lo diretamente, invadir nosso projeto. Então, basicamente, queremos criar aqui, obter ignore arquivo e dentro, adicionar modelos antigos para ser ignorado. E você pode perguntar, por que precisamos fazer isso? Porque, basicamente, no momento em que você quer cometer, obter reputação. Oh, você não quer cometer nenhum pacote porque nossos pacotes são definidos no pacote Jason e log de pacotes. E em qualquer máquina, podemos instalar pacotes corretos apenas pela emocionante instalação do NPM. Agora, vamos criar uma pasta de origem aqui dentro do nosso FBI. Então nós temos apenas modelos de nota aqui e nós precisamos de uma pasta de origem verbal, certo, nosso reembolso frio fora. Então, basicamente, aqui eu quero criar em você arquivo índice Js e dentro comer criar express que vamos importar com exigir do expresso e isso basicamente ele. E agora precisamos criar uma nova instância off express. Agora, a partir do pacote expresso, podemos criar nosso aplicativo Então basicamente ab é igual a expresso e nós só precisamos chamá-lo agora podemos usar este aplicativo para definir nossos sacudidos. Então, basicamente, podemos dizer app get e aqui será, por exemplo barra Olá E aqui teremos uma função com solicitação e resposta e dentro com esta função vai querer retornar algo que eu acho que para fins de teste podemos nomeá-lo Portanto, sabemos que este é o teste dos dedos dos Urais se os nossos serviços estão a funcionar e agora precisamos aqui dizer “prender areia” E aqui,
por exemplo, alguma força, o nosso servidor de calor I está a funcionar correctamente Então, basicamente, se não souberes o que expressa Basicamente Estamos criando, hum a partir do Express e agora podemos registrar nossas rotas para o xadrez conhecido. Registamos aqui teste de rota e este pedido perímetros ato e resposta. Estes são perímetros dentro dos quais temos algumas propriedades do nosso pedido e, em seguida, com descansos e podemos enviar algum texto de volta e verificar se ele está funcionando. Então, basicamente agora, quando nosso observável ser iniciado e vamos saltar para cortar teste nosso fluxo será renderizado. Agora, depois do registo do Harold, podemos começar a ouvir o nosso serviço. Então vamos dizer aqui app ouvir E aqui precisamos especificar uma porta em que estará escutando . E aqui vai o cultic. Então, basicamente, Colback significa que nosso EP ouvir começou com sucesso. Então aqui está começando ou iniciado ap I serviço. É isto. Basicamente, este é o servidor de nó mais básico que podemos fazer. E vamos começar agora para estes no nosso pacote. Jason, precisamos especificar como roteiro. Então vamos nomear nosso script start e este é o nome especial em que eles usaram para iniciar um servidor
de produção. Então basicamente em todos os lugares onde você vê as palavras começam, isso significa que isso é para produção. E se você ver a palavra morte como na morte de Pam Ron, então será antes do desenvolvimento. Então aqui, por enquanto, somos humanos, que estamos fazendo produção de Web Serra, e aqui começamos com simplesmente faz anulados e depois xadrez de índice fonte. Então vamos começar o nosso Terram. Vamos ver se está funcionando. Estamos aqui dentro do FBI e só precisamos escrever e o PM John e aqui vamos começar. Como você pode ver, recebemos uma mensagem iniciada um serviço de pizza, o que significa que nosso servidor está funcionando. Podemos saltar no navegador e no navegador como você pode ver onde ficando não pode obter barra porque não
registramos barra seu l Mas quando montamos barra teste teria uma mensagem Nosso
servidor do FBI está funcionando corretamente. Isto significa que o nosso código está a funcionar e podemos começar com o desenvolvimento do nosso observador em Daca. E este é exatamente o ponto por que eu queria instalar nota e em PM em sua máquina porque agora testamos sem mais escuro que a nossa aplicação em está funcionando e agora vamos começar a embalá-lo dentro mais escuro. Se você tiver quaisquer comentários ou perguntas, sinta-se livre para perguntá-los e eu vou respondê-los com certeza
7. Como preparar a imagem de docker do api: em vídeo de tese, vamos preparar completamente a nossa imagem DACA pie. Como você se lembra no vídeo anterior aqui temos um médico pilha maneiras de No. 13 e este comando significa que no momento em que construímos nossa imagem para um empate Nenhum
adolescente foi baixado. Esta imagem está agora no nosso computador. Então a razão de Nice comando de cabelo escuro que pode mostrar todas as imagens que eu não carrego em sua máquina. Então, basicamente, no console você pode secar imagens de documentos e, em seguida, você tem um enorme mínimo e para você não
deve ser tão grande quanto para mim. Mas basicamente aqui eu vou rolar um pouco. Você pode mostrar no topo que há uma tabela com imagem tag repositório 80 criado e tamanho e basicamente aqui. A razão pela qual meu menos fora todas as imagens na minha máquina fora do curso é bastante. Mas aqui você pode ver nota com take 13 E aqui está a imagem 80 e quando foi criado, então basicamente para você deve ser algo semelhante. Eu tenho diferentes versões conhecidas aqui, como você pode ver, mas basicamente a idéia é que esta imagem está lá você pode ver comer e você pode trabalhar com ela se você precisar. Então, basicamente, se você vê isso em sua máquina e o tamanho, isso significa que esta imagem está disponível e você não precisa puxá-lo todas as vezes. Mas ele está lá e você pode simplesmente construir qualquer projeto com esta questão específica. Agora vamos continuar a preparar nossa imagem de nó. Então, basicamente, sabemos que agora não carregamos Não. 13 e podemos especificar que eles têm diretor de trabalho aqui e basicamente o que isso significa? Então, quando temos esta linha, nós temos simplesmente ar imagem Lennox com nota instalada para que você possa imaginar três como um diretor nuclear Lee
padrão está lá e nós podemos bem aqui, trabalhar caro E então, por exemplo, app feridas do usuário. Então, basicamente, isso significa que este será o nosso diretório de trabalho onde nossa aplicação viverá. Basicamente
, pode ser qualquer diretório. Pode estar cheio. Pode ser um corte, mas prefiro ter um diretor assim. Isso é bom ter qualquer nome porque você não tem as mesmas coisas dentro de uma imagem. Então, basicamente aqui dentro da nossa imagem está vivendo no projeto Lee One, o que significa que
realmente não importa o que este diretório de trabalho será, mas precisamos especificar pelo menos um. A próxima coisa que queremos especificar. Aqui está o Korpi o pacote Jason e o arquivo de bloqueio de pacotes. Então, basicamente, como você pode ver aqui, nós temos pacote, arquivo
Jason e log de pacotes Jason, e eles ousam são esses arquivos? Como você pode vê-los agora em nossa máquina local, estes são arquivos locais que estamos mudando. Fim que continuaremos a mudar. Mas agora temos uma imagem. E quando construirmos esta imagem, queremos copiar dentro de Beckett, Jason e Package Lock. E você pode perguntar por quê? Porque dentro da nossa imagem vai querer instalar. Anote mais ofertas. Basicamente, Por enquanto, nós instalamos modelos de nó em nossa máquina. Mas é claro que não está correto. É só para fins de teste. A idéia é que em sua máquina, você não tem nenhum modelo de nota basicamente em sua máquina. Você só tem uma ferida, que você pode modificar, e então todas as outras coisas estão vivendo dentro de Dhaka. Então vamos tentar, e você verá a idéia. Então, basicamente aqui, precisamos especificar que queremos copiar Beckett,
Jason, Jason, arquivar e bloquear. Então podemos aqui mesmo. Copiar e, em seguida, empacotar e, em seguida, star dot Jason e aqui dot Slash O que isso significa? Verificamos aqui todos os arquivos na rota com o pacote de nomes e, em seguida, algo ponto Jason. Então, basicamente, é o registro de pacotes e piquete Jason. E basicamente
, será sempre assim. Vendido. Isto é seguro. E aqui dizemos ponto barra, o
que significa, por favor, copie-os para este diretório de trabalho. Porque com este comando estavam dizendo que estamos agora dentro deste diretório de trabalho. Então este comando vai corporatistas dois arquivos quando estamos construindo a imagem dentro da nossa imagem . O próximo passo no estilo oriental. Todos os nossos pacotes. Então, para estes, temos um comando especial Irão. E depois parecemos prazer, certo? O que? Estamos normalmente dentro da concha. Por isso, será em PM instalar. Então? Então, este comando irá instalar todos os pacotes dentro da nossa imagem no aplicativo fonte do usuário. Agora, depois do, a única coisa que precisamos fazer é copiar todos os outros arquivos. Então é por isso que simplesmente podemos dizer “copy dot dot”. O que isso significa? Dot significa, por favor, pegue tudo o que você vê aqui e ponto significa que estamos copiando aqui no diretório. Então, basicamente, você pode perguntar por que simplesmente não escrevemos este ponto ponto aqui onde temos Beckett, Jason e então simplesmente não escrevemos npm install. E a resposta é que nós não queremos copiar dentro de modelos de nota, e basicamente, este comando simplesmente pode ser tudo. Então, para evitar isso, precisamos criar novo arquivo aqui ponto DACA ignorar. E dentro, Como você pode ver, Eu criei ponto DACA ignorar. E podemos simplesmente aqui modelos de nó. E funciona da mesma maneira. Tipo “get ignore file”. Então, basicamente, é apenas um arquivo para mais escuro e mais escuro entende que nós não queremos copiar modelos de nó dentro se nós temos isso. Então, basicamente, mais
uma vez, isso é exatamente tudo o que rolaria. Então, cinco linhas e nosso arquivo Dr está pronto. Então, mais uma vez, pegamos a imagem. Era “Não”. 13 estavam dizendo que o diretório de trabalho é o aplicativo de origem do usuário gravado dois arquivos lá e executado em pm em grande estilo. E isso instala todos os memoriais da nota. Então poderíamos ser tudo dentro, exceto fora de nossos modelos. Nosso arquivo do Dr. está pronto. E agora vamos verificar mais uma vez o que temos em Dhaka. Sondagens calmas. Como podem ver aqui, não
temos quase nada aqui. Simplesmente dizemos que está bem, por favor construa uma torta para nós e há um arquivo de Dr dentro e este arquivo médico será usado. Então vamos pular para o console e para a direita Mais uma vez Docker compor compilação como fizemos anteriormente. E como você pode ver, parece diferente. Então temos aqui a construir o FBI o primeiro passo do Não. 13 como tínhamos anteriormente. É muito rápido agora porque é localmente. Então estamos no diretório de trabalho e aqui estamos copiando arquivos e estamos executando aqui NPM instalar. Então, basicamente, aqui temos um aviso, mas não importa porque não temos descrição e campo de
repositório. Em seguida, edite 30 pacotes de colaboradores blá,
blá, blá, que significa que os pacotes foram instalados com sucesso. Agora temos uma cópia e agora o nosso recipiente waas construído com sucesso. Então, basicamente, agora temos uma imagem e podemos dirigir aqui imagens de encaixe e, como podem ver,
em algum lugar aqui, ele é nossa imagem com o nome Docker do mundo real, uma torta mais recente é que consumiu o topo. Temos Repositório, Riel World, o Doutor, um pagamento e tag mais recente e esta é a imagem E. D. E acabou de ser criado. E o tamanho desta imagem é de 900 megabytes. O que significa que não é tão pequeno para criar uma imagem do que é conhecido xadrez. E vamos corrigir isso na próxima palestra. E por agora nós apenas criamos a imagem para o nosso P. Eu estava instalado tudo dentro, e nossa imagem basicamente está pronta para ser iniciada.
8. Servidor de api de início: No vídeo anterior, criamos nosso arquivo de encaixe para uma pizza e ele foi construído com sucesso. Agora é hora de começar do observador que criamos basicamente no arquivo Dhaka, você pode especificar as coisas adicionais. Isto é exposto por exemplo 300 comando e comandantes no raio, por exemplo nó e, em seguida, coma. E aqui Waas, acho que Ron Ah, comece. Então a idéia é que exposto está expondo a parte, então isso significa que estamos usando 300 pobres dentro do nosso médico. Então aqui, dentro, feridas com especificado que este é o Pore 300. Mas esta porta está dentro de nosso contêiner docker e queremos expor esta porta para o
mundo exterior , que significa que se não expormos o esporte, não
podemos obter nosso aplicativo web com o qual está chovendo dentro de seu contêiner. Então, para fazer isso, só podemos expor o porto. O próximo comando é o comando, e basicamente isso é o que começou nosso observador. Então nó Ron Start vai simplesmente começar o observador quando queremos executar o nosso país nossa imagem . Então, basicamente, a idéia é que nós não precisamos deste comando aqui, então basicamente nós vamos removê-los e a questão é Por quê? Porque queremos configurar tudo como placas expondo e que ambiente é e quais comandos usar dentro do Docker compor porque isso é mais flexível. E esta é a nossa única fonte de verdade. Sim, temos configurações, por exemplo, FBI dentro do arquivo Dhaka. Mas esta é a configuração. Como projeto ap eu deveria trabalhar, mas não como devemos executá-lo de fora. Agora vamos saltar para o nosso Docker compor Yom e ele especificou duas coisas. Em primeiro lugar, será o comando. Isto é o que você viu no arquivo Dhaka aqui podemos montar no PM Ron, começar. Este é exatamente o comando que criamos para iniciar nosso servidor web. A próxima coisa que vamos escrever E sports E aqui vamos escrever placas 303.000. Desculpe, ele fechou o Resultant. E vamos verificar, eu acho que com o comando está claro. Então, basicamente com este comando nosso contêiner será iniciado. Mas os portos não está claro Por quê? Está parecendo assim. Primeiro, tudo o que escrevi não corretamente. Deveria ser escrito assim. Então aqui temos um traço e, em seguida, a corda. Então, basicamente, o que significa essa tendência? Então, aqui. Quero espaços, é
claro. E o fluxo significa que a porta à esquerda é a porta do host e host significa que nossa máquina e porta à direita significa porta do contêiner mais uma vez. O que significa quando temos aqui um índice de fonte P I e aqui com 300 especificado. Esta é a porta do contêiner, porque a aplicação Web está sendo executada dentro do contêiner com esta porta. E então queremos expor o esporte como 3000 porto. Então aqui podemos dirigir cinco ou 6000. E isso significa que em uma porta será 3000. Este é o esporte, mas o porto lá fora será 6000. Então, basicamente, se nós vamos bem aqui algum outro número como outro porto, ele simplesmente não vai funcionar. Porque aqui na porta 1111 não existe dentro do contêiner e nenhum aplicativo está escutando dentro para a porta 1111 Basicamente, com este comando. Quando observador dentro recipiente é iniciado,
em seguida, o nosso observador está ouvindo no pobre 3000 e estamos basicamente terminado aqui. Só precisamos especificar qual comando será executado quando iniciarmos nosso contêiner e quais derramamentos devemos expor dentro deste contêiner? Agora vamos tentar Mais uma vez Docker compor construído E como você pode ver, tudo está começando de novo porque nós mudamos arquivo Docker. Mas agora vamos tentar de novo. E como você pode ver, foi exatamente muito mais rápido porque nós não fizemos nenhuma alteração para drogar um arquivo de composição para doc File. Desculpe, É por isso que foi quase instantâneo. Então agora Docker compose build criou nossa imagem e agora podemos usar essa imagem para fazer isso, precisamos tentar Docker compor. E como você pode ver aqui temos várias mensagens primeiro de para criar rede. Falaremos sobre redes mais tarde. Por enquanto
, não importa. Aqui, você pode ver a criação do mundo real do estivador do FBI. Este é exatamente recipiente com esta imagem que criamos e foi feito. E aqui estávamos nós, Attash neste contentor. E Thies são os troncos desses contêineres, que significa que aqui você pode ver que este é o nosso recipiente de torta. E aqui os bloqueios Nenhum índice fonte, Este é o nosso comando para iniciar qualquer pagamento. Agora vamos mudar para o nosso navegador e recarregar a página e Como você pode ver, tudo está funcionando como funcionou anteriormente. Mas como podem ver agora, temos o Dr. Compose. Se eu vou pará-lo com controle, digamos ou comum, você pode ver que ele parou de funcionar, o que significa que isso é exatamente isso. Então, quando montamos Docker, compor Ele começou um por serviço e você pode vê-lo aqui, em seguida, dentro do nosso navegador, temos host local 3000 e teste. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
9. Docker: no vídeo. Eu quero falar sobre coisas como DACA Hub. Então, basicamente, aqui dentro do nosso arquivo docker rolado de No. 13 e, em seguida, porta veio magicamente Não elogiou esta imagem 'll de algum lugar e nós não sabemos de onde exatamente Então basicamente isso de onde Waas hub dr ponto com Então isso é basicamente algo como registro nó Js, por exemplo. Então, basicamente, é um lugar onde você pode empurrar e puxar imagens, o que significa que isso é como um armazenamento para imagens. E vamos dizer que estamos procurando nota então basicamente foi nó direito na pesquisa, você pode ver aqui contêineres e aqui eles são classificados por popularidade para que você possa ver 10 milhões mais, que significa que este é o representante mais popular. Oh, e você pode ver que esta é a imagem da nota. Este não é Js o sangue baseado em JavaScript de para o lado de serviço e rede e podemos clicar sobre ele e basicamente uma coisa mais importante, esta é a barcaça aqui imagem oficial. Este distintivo significa que isso é oficial e como você não faz Senhor a coisa que é realmente normal como nenhuma coisa escondida dentro. Então, basicamente, esta é a imagem oficial do Dr para o nó e você pode ver aqui tags suportadas. E este é realmente um importante e interessado em você. Basicamente, isso significa que você pode tirar qualquer tag fora do nó. E, por exemplo, aceitamos não. 13 então basicamente nós pegamos algo daqui. Mas basicamente o ponto é que com tal notação, nem
saberia exatamente o que. E no fundo em algum lugar, você pode ver referências rápidas e o que não é jazz, como usar essa imagem e assim por diante. Então, isso é basicamente comer, mas você precisa fazer normalmente é apenas para encontrar a imagem que você precisa, por exemplo,
através do aumento e, em seguida, aqui direto de e em seguida, a etiqueta. Então, basicamente texto que você pode ver aqui quando você clica em tags a haste imagens diferentes e você pode ver o tamanho fora das imagens como fora do curso em nenhum monte deles, porque isso é como imagem super popular. Mas é claro, quando você está olhando algo não tão popular, você pode ver talvez vários textos e apenas uma imagem, um tipo de imagem. Porque aqui você considera que esta é uma imagem fina, que é menor e cardos, a imagem maior e assim por diante. Mas há um tipo de imagem que eu realmente gosto e é chamado Alpine. Então, basicamente, se a imagem do Google Alpine e abrir a Wikipédia aqui, você pode ver o que é isso em tudo? Ok, não Wikipédia, mas Dr. L.
Dor . E a ideia é que as imagens do Doc são muito grandes e geralmente não precisamos de tudo. É por isso que as pessoas tentaram criar imagens menores, que significa, por exemplo, como você viu aqui no console, sempre que direito a imagens do médico e encontrar nossa imagem do nó aqui é bastante grande. É quase um gigabyte, e basicamente não instalamos nada lá. Então isso é como imagem bruta e Justin disse Saiba que então se você tem um pequeno servidor,
por exemplo, por US $5 alugado em algum lugar, normalmente ele terá,
tipo, talvez, 20 gigabytes fora do armazenamento. E isso significa que você não pode instalar tantas imagens lá porque você estará em breve fora do espaço. É por isso que Thistle Pine Lennox foi criado. Então, basicamente, isso é uma perturbação especial e você tem imagens super pequenas e as menores imagens começando em Lewis cinco megabytes. Então, basicamente, isso é muito, muito pequeno, e vocês podem ver aqui que eu tenho um pequeno pinheiro, por exemplo. Oito. Esta é como toda a versão, mas esta é realmente pequena. Como você pode ver, são apenas 67 megabytes, então basicamente podemos mudar um gigabyte para algo em torno de pelo menos 100 megabytes. Basicamente, em imagens populares antigas, você sempre tem uma visão alpina, e aqui para usar um alpino com simplesmente pode secar traço e alpino. Mas eu quero ser melhor do que isso porque eu quero sempre especificar russo rigoroso. Para mim, 13 pode ser diferente. Então é por isso que podemos verificar aqui. Qual é a moda mais recente? Por exemplo? 13 12 0 e eu quero escrevê-lo. Pelo menos o adolescente 12 0 e depois traço Alpine. Como você pode ver aqui quando eu tento toe search 13 12 0 Alpine. Você pode ver que ele existe para que possamos usá-lo. Então, basicamente, estamos usando dis notação. O 10 12 0 Alpine esta vontade em grande estilo para nós foi o próximo edifício fora da nossa imagem. Versão alpina. Então vamos fazer isso agora. Eu só tentei encaixar compor construções e você pode ver que nós seremos feitos senhor à sua imagem. Mas esta imagem será muito, muito menor. Você pode ver que é muito rápido. Então aqui estão as imagens construindo novamente. E agora, com imagens falantes, vamos verificar. O que é preciso? Então aqui nós conhecemos 13. Era quase um gigabyte e temos conhecido com alpino e é apenas 114 megabytes, que significa, como super simples, pequeno e para nossas necessidades, é realmente suficiente, que significa normalmente para nosso projeto. Se cada imagem vai levar algo em torno disso e basicamente precisamos talvez quatro ou cinco imagens
diferentes no total,
ele estará em algum lugar em torno de um gigabyte. Para resumir, o que é o Dr. Hubbert? Este é o lugar onde armazenamos imagens ou não. Nós, mas onde as pessoas estão mexendo imagens. Nós não planejamos armazenar nossa imagem que criamos para o projeto no hub Dhaka High, porque primeiro, ela não é gratuita. Ok, é grátis para uma imagem, mas queremos mais, e em segundo lugar, não
faz muito sentido porque vamos compartilhar nossas imagens de outra maneira, que eu acho bastante conveniente. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
10. Variáveis de ambiente: neste vídeo. Quero falar sobre variáveis de ambiente. Mas primeiro, tudo o que eu quero especificar um perímetro importante em nossa composição portuária. E este perímetro é chamado de reiniciar. E aqui é igual a menos que seja parado. O que isso significa? Significa que estamos dizendo aqui que a composição de encaixe deve reiniciar nosso contêiner. Se é, por exemplo, parado por qualquer razão como um erro sobre o terror. E o médico compor tentará iniciá-lo de novo e de novo se não pararmos o recipiente as mãos. E basicamente você pode me perguntar um que outras opções e como posso obter todos os perímetros que eu disponível no Docker compor? E há uma página muito agradável cães DACA ponto com. Então é barra oficial composta barra arquivo composto e esta é uma referência fora composto arquivo versão três e versão três é o que temos aqui. E basicamente é super longo e normalmente eu faço uma morte comum aqui e estou procurando, por
exemplo, o que eu preciso. Digamos que reinicie e aqui você pode ver que temos reinício de propriedade e esta é a
política de reinicialização . Não é disso que precisamos. Mas aqui está reiniciar e você pode ler sobre Reiniciar. Então não, isso é por padrão. Assim, os contêineres não serão reiniciados em nenhuma circunstância e sempre significa reinicializações e em caso de falha. E a menos que parado quase em todos os meus aplicativos, eu estou usando a menos que parado porque isso faz muito sentido. Então, basicamente, aqui no arquivo desta página, você pode verificar todas as propriedades que existem no arquivo composto e ler sobre elas. Então, basicamente, esta é a fonte da verdade e o comando marcador. Se você quiser verificar o que alguma propriedade está fazendo ou qual é a sintaxe correta para olhar aqui , por exemplo, podemos olhar em portas e aqui você pode ver placas em algum lugar que podemos clicar no dock. Oh, e isto é aqui. O que nos obrigou? Ele expõe. Derrama tese, Strut, Syntex, recipiente
host. Nós já sabemos,
mas aqui você pode ler mais informações sobre isso. Agora vamos voltar às nossas variáveis de ambiente. Basicamente, vamos supor que nossa aplicação irá conceder e em desenvolvimento e em produção. Então nós temos apenas dois ambientes e normalmente isso é o que eu estou usando, como 90% do tempo. Então eu não tenho encenação ou algo assim. Apenas desenvolvimento e produção. E a questão é, como podemos distinguir o que nossas aplicações devem fazer entre produção e desenvolvimento? Então a primeira pergunta é, por que precisamos distinguir algo e digamos, primeiro lugar, que no desenvolvimento e produção, podemos executar nosso aplicativo em diferentes portas, Por
exemplo, Então vamos dizer que estamos usando algum aplicativo de terceiros como correio, por exemplo. E, claro, você tem em enviar algo como excesso de conversa, que significa que eles dão um teste de fala e produção de falar, que significa conversa de teste e você está usando em ambiente local, onde você quer testar como está funcionando e produzindo que você está usando a mineração de dor, por exemplo, para enviar e-mails, que significa fora do curso que você não quer em desenvolvimento usar produção, conversa e vice-versa, que significa em nossa queremos saber de alguma forma em que ambiente estamos iniciando o aplicativo. Então basicamente existem abordagens diferentes para esta abordagem é ter
scripts diferentes aqui, como estrela para produção e morte para desenvolvimento, por exemplo, então não precisamos especificar nada aqui em Docker compor porque nós apenas errado comando
diferente aqui, então basicamente esta é a produção Docker compor Jahmal Então é aqui no PM Ron começar Se é desenvolvimento o médico compôs Yama Então é em PM John Morte. Esta é a abordagem mais fácil. Mas ainda queremos configurar várias coisas de fora para nossa aplicação, por exemplo, pode ser o host ou algumas outras propriedades que precisamos. Então vamos supor que queremos ter conselho diferente dado de fora. Então, basicamente, aqui em nosso FBI, nós podemos montar ambiente e esta é a propriedade para variáveis de ambiente. E aqui podemos especificar placa igual a 3000. Agora vamos verificar como está funcionando. E aqui está uma coisa legal que eu quero mostrar a vocês. Normal ao vivo com docker seco, compor, construir e após compilação foram executados no Docker compor. Nós também podemos aqui Docker compor menos compilação. Isto significa que depois de cada comando docker compose irá tentar construir uma imagem e se em que já está
construí-la, ele não faz nada e apenas faz as pazes. Este é um comando toe economize tempo e para evitar executá-lo sabiamente. Então aqui nós clicamos enter e temos um erro e, basicamente, como você pode ver aqui, temos um estreito. Esse arquivo composto é inválido porque a opção de conflito não suportada é um ambiente pretificado . E isso é o que eu realmente gosto em compor docker. Você recebe mensagens legais e sempre sabe do que se trata? Então aqui resultado ambiente. Não corretamente. Deve ser Environ je ou tripulado. Então com n e então vamos tentar de novo. Como podem ver agora está funcionando e começamos nosso serviço do FBI. Então agora queremos verificar se o Sports Tinggi funciona. A questão é, como verificamos? Então, basicamente, como você sabe no conhecido Jess, nós temos isso e de propriedade a partir do qual podemos ler tudo o que precisamos. E normalmente eu prefiro especificar a configuração do arquivo onde eu li toda a configuração, mas para a simplicidade. Vamos tentar aqui. Então vamos bem aqui, Cônsul log e processo e e e e se deve ser pequeno e, em seguida, porta filha e vamos direito que este é o nosso porto. Agora precisamos não só para reiniciar tudo parte reconstruir, e isso significa que todo o processo de construção está acontecendo novamente. Copiamos arquivos aqui. E então iniciamos o servidor. E como pode ver, não
demora tanto tempo. Então aqui, como você pode ver, porto é 303.000. Isso é exatamente o que especificamos lá fora. O que significa que aqui podemos escrever algo como, const board igual a, trouxe, diz e não porta. E basicamente, então aqui não estamos usando 3000 porta baht, que significa que as pessoas precisam especificar porta fora. E agora nossa aplicação é apátrida. Então não temos nada lá dentro,
como placas de configuração, como placas de configuração, seja lá o que for. Nós apenas especificar tudo de fora como porta, e nós também podemos especificar algumas coisas como host. Por exemplo, penso que isto é realmente útil. Então sabemos em que host começamos a nossa aplicação, por exemplo, host é igual e aqui http e, em seguida, temos riel world dot com. Então agora aqui podemos, por exemplo, ler nosso host e será processo e host. E aqui, digamos que eu realmente gosto de escrever alguns logs quando começamos Sarah para saber que nós configuramos corretamente variáveis de ambiente para que possamos bem aqui começou um serviço de pizza, por exemplo, na porta. Então aqui eu preciso de outros briquetes a bordo e aqui será o nosso porto. E então algo como o nosso anfitrião está e aqui será o nosso anfitrião. Então vamos começar de novo. Como você pode ver aqui, começamos por serviço em pobre 3000 nosso host é emitido Mundo Imperial que vêm Então esta é realmente boa maneira de configurar aplicativos. Então, isso torna nossos aplicativos sem estado e nós apenas os configuramos fora com Docker compose. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
11. Adição de banco de dados: em vídeo de tese. Quero acrescentar que uma base para o nosso serviço do FBI basicamente a primeira questão de que banco de dados vamos usar e quais pacotes precisamos em nosso aplicativo de nó. Então, é realmente uma solução popular para expresso e nenhum baú é mongo DB, que é documentário em banco de dados. E espero que saiba algo sobre isso. Se você não fizer isso, você só vai para Mongo DB, e você pode abrir o site oficial e ler algo sobre isso que este é o banco de dados mais popular e assim por diante. Então, basicamente, eu não posso dizer que este é o banco de dados mais popular. Mas pelo menos é o banco de dados mais fácil começar a trabalhar com bancos de dados. E existem diferentes soluções como podemos usar mongo db com nota em um off. As soluções mais populares e estável é mangusto, que é o Aram para mongo DB, o que significa longe instalar bongos. E isso nos ajudou a nos conectar ao Mongo DB. E então aqui temos guias diferentes. Por exemplo, como definir toe definir um esquema para que possamos criar schemers como, por exemplo, temos blawg e este bloco tem este 'd estas propriedades e podemos apenas fazer algo como novo modelo, que é, por exemplo, blogado. E então estávamos esperando para salvar e assim por diante. Então isso significa que esta é a maneira fácil toe trabalhar com mongo db. Então, neste curso, vou usar este poderia ser rapper chamado Mangoes, e precisamos primeiro instalá-lo dentro de nossa aplicação. Então, basicamente, vamos campeão, agora
estou aqui na nossa rota para fora do mundo real, Doc sou, sou campeão de uma torta. E aqui, NPM instalar Mangusto. Como você pode ver aqui, podemos simplesmente abrir ações Mongo. Oh, e aqui está um começo rápido. E também diz que NPM instalar bongos é suficiente para nós. Então, instalamos este pacote com sucesso. Você pode ver que este pacote não foi estilizado aqui em Beckett, Jason, por exemplo. Então aqui nós expressamos e Mangusto agora e desta vez para usá-lo. Então, como estamos trabalhando com a base de dados? Então, basicamente aqui que apenas iniciar nossa aplicação assim. Mas agora não podemos fazer isso porque antes de tudo, queremos inicializar nossa conexão com o banco de dados. E quando foi bem sucedido, Onley, em seguida, com começar a ouvir a nossa aplicação E você pode perguntar, por que isso é basicamente porque a nossa aplicação está fazendo algo com banco de dados e temos relação
forte sente banco de dados do que aplicação Como não faz muito sentido para iniciar banco de dados depois de iniciar o aplicativo, porque quando estamos fazendo algo em inicializar fora aplicativo com banco de dados, ele vai simplesmente falhar. Isso significa que antes de tudo, queremos conectar o banco de dados e, basicamente, você pode ver aqui este é o exemplo de como podemos começar. Então este é Mangusto. Então vamos fazer Mongoose Connect e então este vai. Conectar basicamente tem DB e podemos tentar estar em títulos de estréia e assim por diante. Se você sabe que estamos conectados, eu prefiro criar um ajudante que vai me ajudar a conectar o banco de dados. Então aqui, dentro de uma gravata, feridas eu crio uma nova pasta, que é chamada de ajudantes e dentro será dividido para fora. Sim, então basicamente aqui eu quero pegar Mônaco, que é exigir Mônaco agora que ele quer criar nossa conexão. Então, será especialistas em módulos e aqui podemos secar Daut Connect DB. Então esta é a função especial que irá se conectar ao nosso banco de dados e dentro estavam bem no ponto de
Mônaco Connect e você pode verificar isso na documentação. Então, aqui estarão algumas opções. Vamos guardá-los por enquanto e queremos devolver a ligação do Mónaco. Como você pode ver aqui, estamos trabalhando diretamente. Db para nós é a conexão de Mônaco. Então foi por isso que escrevi assim. Agora, aqui dentro Connect, temos nosso banco de dados e a pergunta é o que é DB? Então eu prefiro dentro índice Near Index criar uma configuração de pasta. Então, basicamente, eu estou fazendo todos os meus aplicativos de nó da mesma maneira com a mesma estrutura e em cadeiras de ponto
de índice de configuração. Eu salvo todas as propriedades que eu preciso para este aplicativo. Por exemplo, aqui podemos mover propriedades que foram estrada aqui como placa e host. Então, basicamente, vamos copiado a partir daqui e dentro índice de configuração E aqui nós não queremos Coast host, mas queremos especialistas em modelo Board é igual a porta de ambiente de processo e o mesmo aqui modelo exporta host é igual a host ambiente processo. Agora estamos fazendo a mesma coisa com DB. Então, basicamente aqui módulo especialistas db é igual e será processo e e aqui deve ir
mongo db Ural. Então, basicamente, queremos configurar de fora fora da nossa aplicação este ano. Então vamos chamá-lo, Manco. Bem, Bem, agora devemos usar todas estas três coisas aqui e no nosso festival de xadrez de índice aqui foram
avisados para ter a nossa configuração. Basicamente, podemos destruir a folha diretamente, e aqui é necessário, e será que vamos sair com configuração. E agora aqui nós queremos obter T B. E este é DB que estava passando dentro do Connect. Então este é apenas um simples mongo string, db, blah, blah, blah e nível especificá-lo fora no segundo. Agora quero mudar o nosso xadrez de índice. Então, o que queremos fazer aqui? Basicamente primeiro. Horrível. Criamos um aplicativo e registramos algumas rotas. Não importa porque ainda não iniciamos um aplicativo. E agora somos avisados aqui para conectarmos o banco de dados. Então basicamente conecte DB. Esta é a nossa função especial de exigir e nós estamos indo toe ajudantes db Então, basicamente, agora aqui podemos tentar conectar DB com colchetes redondos. E como você pode ver, esta é a conexão de mangusto. E isto é isto. E quando quando você está escrevendo sobre era, quando alguma vez acontecer nós iremos aqui e uma vez significa que estamos conectados. Então isso significa que aqui estamos escrevendo ponto sobre e aqui ero e queremos apenas fazer log cônsul quando temos um erro e desconectado Este é outro objeto que temos connect DB, que significa que quando perdemos nossa conexão iria querer se conectar novamente e vans significa que quando estamos conectados Então isso está aberto, então começamos nosso servidor e nós não temos start over função ainda Então vamos criá-lo diretamente aqui. Então, basicamente, podemos começar aqui, então apenas sobre coisas divididas basicamente não é muito frio por dentro e com apenas Korpi tudo isso aqui. Então isso é ouvir e então temos o registro do cônsul que foi iniciado, então isso é exatamente comer. Nós podemos simplesmente também montar este código aqui diretamente uma vez deve ser com um e Mas eu prefiro a função para que você possa ver o que está acontecendo. Temos aqui conectado ser e, em seguida, em aberto Temos iniciar servidor agora vamos verificar se ele está funcionando. Obviamente não, mas vamos ver que erros temos? Então estamos bem aqui. Docker compor construir e como você pode ver, ele está construindo e então nós estamos iniciando. Então, como você pode ver aqui, nós temos um erro e você chega parâmetro toe abrir seu I deve ser uma tensão e ficou indefinido O que significa que aqui dentro de nossos ajudantes nós damos dentro db E este DB vem da configuração do processo Ambiente e Manco Ural E nós não especificamos este perímetro . E este perímetro não é comum dentro da nossa composição portuária. Então, basicamente, aqui precisamos primeiro adicionar este perímetro e, em seguida, configurar nosso banco de dados. A questão é como aderir mais um serviço para o nosso banco de dados. Então, como dissemos anteriormente aqui, precisamos de algo como um banco de dados P I. Então, basicamente, o serviço para o nosso FBI e eu acho que nome a p eu d ser leste eficiente e dentro nasceu para usar Mongo DB. Então, basicamente, se você não sabe como proceder com ele, você pode simplesmente ir para Dhaka hub. Então, que pulou no site. E estamos bem em Mongo, no Ural, como você pode ver as imagens oficiais e vamos tirar imagem mongo. Então, vamos clicar aqui e aqui uma tag para que você possa tomar diferentes tachas. Por exemplo, mais recente, vamos tomar mais recente, o que significa aqui com simplesmente latas, certo? Não construir como fizemos aqui, mas diretamente imagem assim imagem. E aqui estará o nosso nome. Então aqui foi simplesmente a necessidade de escrever mongo mais recente e é isso. E se você me perguntar, por que não construir como você pode ver aqui, nós não temos uma pasta para um banco de dados, e nós não precisamos toe porque nós não temos nenhum arquivo DACA que nós precisamos especificar para o nosso banco
de dados A pie. Podemos, é
claro, criar. Mas não queremos fazer nada com esta imagem. Só precisamos desta imagem e vamos usá-la diretamente. É isso. Foi por isso que tentei aqui. Mongo mais recente. E isso é o suficiente. Agora, mais
uma coisa é que temos de começar este serviço antes de começarmos o FBI. O que é óbvio porque festival, Como eu disse, estamos começando banco de dados e, em seguida, estamos começando nosso serviço, que significa que se este serviço vai começar mais tarde do que o serviço, então tudo vai quebrar. E para isso temos uma propriedade especial. Depende, e aqui concorda banco de dados. Então, como você entende, aqui vai Lee. Então basicamente assim, você pode ter como, cinco banco de dados se você tem dependência é disparar bancos de dados. E basicamente, banco de dados é apenas um nome e nosso nome aqui é um P I d ser. Então vamos nomeá-lo para um T i ser. E não importa se é um banco de dados ou apenas outro serviço. Você pode especificar aqui Cinco serviços diferentes e passeio depende dos serviços. Então, estamos prontos agora. Nosso banco de dados do FBI está começando antes de começarmos nosso FBI. Então vamos tentar mais uma vez, vamos ter certeza alguma vez, mas não é. A questão é que você pode ver aqui que temos saída fria. E como você pode ver, Docker compose está tentando reiniciar nosso contêiner novamente e novamente indefinidamente sólido. Pare com isso e verifique. O que temos aqui no início? Então aqui temos erros. E aqui em algum lugar, se não elogiarmos, há banco de dados? Então, se você pode ver aqui você tem pedidos para um banco de dados de pizza, o que significa que algumas coisas sobre nosso banco de dados aconteceram. Como você pode ver aqui nós somos velhos Dhaka compor construir e então aqui nós vemos criando o Dr. A. P I seria. O que significa que o Docker compose vê nosso novo serviço e tenta criá-lo. Então, ele foi criado com sucesso e estamos anexando para este toe serviços e, em seguida, erro iniciado. Então, basicamente, estes são alguns registros e nós temos o mesmo aerodinâmico. Se eu rolar para o fundo, você pode ver uma rosa que seu olho não está correto. Estes são os seus olhos que foram especificados como indefinidos porque não passamos do Docker Compose. Agora precisamos especificar esta propriedade que criamos Mongo Ural aqui e aqui podemos dizer o Ural fora do banco de dados. E basicamente, para isso precisamos aqui. String mongo, dois b. Então será um chi db. E aqui, Kahlan e Deport. E 27017 é a porta padrão do Mongo DB. E, em seguida, barra e o nome fora do banco de dados. Então, basicamente, aqui teremos o banco de dados. Digamos que ik I Agora vamos reiniciar nosso dispositivo de encaixe, compor e verificar como ele se parece. Como você pode ver, ainda
estamos recebendo erros. E aqui está dizendo que o atual Yuri em sua pessoa Istriana é duplicado e será removido para usar as novas partes ou partes de uso de opção de ônibus. Pacote novo. Então, basicamente, como você pode ver aqui dentro, a mãe vai começar. Você tem esta opção usado nova pessoa. Verdadeiro. E eu não escrevi porque pensei, OK, talvez funcione sem ele. Então dentro para estar aqui onde estamos nos conectando, precisamos escrever coma e usar novas encomendas. Verdade, vamos reiniciá-lo novamente. Então, basicamente, esses mostra que você pode trabalhar com Dr. Really eficiente Você obtém alguns erros de Dhaka como em logs como erros normais em sua máquina e você pode facilmente corrigi-los. E não é grande coisa. Como você pode ver agora, depois de começar, eu não recebo erros. Então aqui temos um P I e A PDB. Eles são registros incríveis de um
PID
Be PID e avisos sobre duplicação, como descoberta de servidores e monitorar um mecanismo em nota. Mas na verdade nós não nos importamos com isso porque para não para nós, é importante que quem foi iniciado com sucesso pelo serviço. E isso significa que aqui dentro índice, passamos por conectar. Então, estamos conectados e abertos com o nosso serviço iniciado, que significa que estamos conectados ao nosso banco de dados e ele deve funcionar. Então, mais uma vez, como ele está funcionando. Então aqui temos nossas cadeiras de índice fonte. Nós conectamos banco de dados e conectamos aos bancos de dados Mongoose conectar onde estamos aceitando nosso banco de dados. E então nós só temos um erro sobre isso. Conectado em aberto em aberto significa que nosso servidor, nosso banco de dados foi iniciado e podemos iniciar nosso servidor. Então iniciar o servidor é apenas ajuda. Ouça e ele nunca ficar entediado Host e conectar db de nossos arquivos adicionais. E em configurações, temos três propriedades do processo. E assim estas três propriedades pior embelezar fora no Docker compor e dentro de nossa ajuda de 40 b, usamos isso para ser de Docker compor para conectar o banco de dados. Agora, se saltarmos para a docker, compor foram adicionados aqui. Nova imagem mongo mais recente. Então esta é a imagem que foi baixada automaticamente. Então não temos aqui o Dr. File sobre o seu EPO e ele escreveu “Depende de um p i ser “, que significa que este banco de dados deve começar primeiro. Também aqui nos devemos Mongo DB e, em seguida, um p i d.
ser. Então este é exatamente o serviço. Então esta é a sua propriedade. Então estamos dizendo que este mongo db Ural é comum a partir deste serviço de servidores. E aqui está a porta padrão fora do banco de dados mongo. E este é o banco de dados deles que queremos usar. É isto. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
12. Criando solicitações de banco de banco de dados: em vídeo de tese. Eu quero falar sobre fazer pedidos de banco de dados, mas festival eu quero entender que você realmente entendeu o que são imagens falantes. Então basicamente no vídeo anterior você viu que acabamos de escrever aqui para nossa epinefrina. Eu seria imagem de serviço mongo mais recente e é isso. E eu acho que para muitas pessoas, isso é magia porque, tipo, você não entende o que aconteceu lá dentro. E vamos verificar como basicamente esta imagem Mongo DB mais recente está parecendo então isso é exatamente o mesmo. Como criamos aqui nosso arquivo de encaixe. Então, basicamente, quando as pessoas criaram essa imagem mongo, elas criaram algo como não do nó, é
claro. Mas talvez de um boom para você pode aqui, por exemplo, remover tudo e bem aqui de Mobuto. Digamos 16. E então eles apenas instalaram o que eles precisam para a imagem mongol tese. Então, basicamente. Ok, talvez eles não tenham esta cópia trabalhada aqui e assim por diante. Mas você pode simplesmente John todos os comandos aqui como você fez anteriormente. Servidor Linux Índia, por exemplo. Você pode aqui, por exemplo, de Mobuto e depois John. E aqui está você fazendo algo como Abd ser instalado. E aqui vai, Digamos mongo e isso é basicamente comer. Acabaram de instalar Bongo neste xarope. Então, com o comando, eles podem dizer que quando esta imagem for construída, precisamos começar Mongo. Então eles estão escrevendo algo como a mamãe começou, por exemplo, por exemplo,
a mongo DB. E basicamente isso é comer. Então, como você pode ver, não há magia dentro de cada arquivo de
encaixe, e cada imagem é apenas um conjunto de comandos que estão lá para construir e criar essa imagem. E depois podes perguntar-me. Mas qual é a diferença, então, entre compartilhar essas imagens através do Dr Hub e simplesmente compartilhar em algum melhor script como onde você simplesmente escrever EP, obter um bom para ser e assim por diante fora do curso, as principais diferenças que compartilhar uma imagem está compartilhando o instantâneo do seu servidor Lennox, o que significa que isso é como sua classe e instâncias. Então classe é sua imagem, e seus contêineres são instâncias, que significa que você apenas compartilha a imagem e você tem certeza de que nesta imagem, tudo o que ele quer instalado é o mesmo em todos os lugares. Então, se eles instalaram a versão Mongo DB, eu não sei 16. Então esta versão estará lá para sempre. Nunca seria mudado para uma versão 17 ou algo assim porque eles têm isso dentro da imagem. Então eu espero que você tenha entendido que não há magia dentro de imagens. É apenas um conjunto de comando toe construir uma imagem e, em seguida, estamos usando essas imagens para criar nossos contêineres. Então vamos reverter para a nossa nota porque nós não precisamos mudar o arquivo médico e verificar o que podemos fazer com o nosso A p i d. Seja então, primeiro, tudo o que eu quero falar sobre este banco de dados mongo aqui. L, como você entendeu. Este é o nome do nosso serviço e este é o porto. E esta é a porta padrão onde mongo db dentro deste serviço foi iniciado e este é simplesmente o nome fora do nosso banco de dados que podemos usar aqui diferentes bancos de dados e não importa porque mongo db irá criá-los para nós. O que é mais interessante é o banco de dados de fornecimento. Como você entende, temos um chamado link toe o serviço para que basicamente podemos usar o nome fora do serviço entre serviços. Então, como podem ver aqui na declaração do serviço do FBI, podemos usar isso como referência. Dois são os serviços e está acontecendo através da rede. Mas falaremos mais tarde sobre isso. Para nós, é importante. Entenda que aqui este um p i. D. B é realmente bom porque não é algo como anfitrião local ou algum endereço I p,
porque neste caso, porque neste caso, três debates separados têm o mesmo gosto em todos os lugares. Não precisamos mudar este ano l, por exemplo, para produção ou local porque é sempre a referência a outro serviço. Agora vamos falar sobre fazer solicitação de banco de dados. Então aqui nós já estamos matriculados Docker compor uma compilação. E você viu que para nós, onde começou primeiro são como eu seria e então nosso anfitrião, como você pode ver, nós não temos nenhum erro. E agora em nossa aplicação fora das feridas do céu e do índice aqui após iniciar o servidor, podemos fazer algo com o banco de dados fora do curso. Nós não vamos implementar toda a aplicação aqui com nada, mas pelo menos queremos verificar que Isto é exatamente como um dito e que um banco de dados disponíveis aqui e podemos usá-lo. Mais uma coisa que eu quero fazer aqui é o Cônsul registrar nossa Deby porque aqui nós temos que estar dentro de nossa configuração e seria muito bom ver este ano I no registro do cônsul quando começarmos nosso xarope. Então eu simplesmente aqui banco de dados você está bem e aqui está Debbie. Agora precisamos de homens mais cedo para reiniciarmos o estivador. E como você pode ver aqui, nós temos aqui banco de dados seu l mongo db uma torta, blá, blá, blá. O que significa que o nosso B está correto. E agora podemos fazer isso obedece aos pedidos. Como estamos usando Mangusto, vamos abrir a documentação. Então aqui está começar. Já fizemos nossa primeira conexão. E Wissmann diz, se você não sabe, você está definindo esquema para nós. O que significa que este é o esquema para o modelo. E aqui está você dizendo que tem a Entity Kitty com nome. Normalmente eu diria para um aplicativo que você tem algo como esquema gabar-se, esquema artigo do que esquema de usuário e assim por diante. Então, como você pode ver aqui, eu vou apenas baseá-lo em algum lugar no topo porque isso realmente não está relacionado. Toa fazer isso no começo deles. Isto é como uma definição. Então, digamos, aqui temos esquema Kitty. Ok, tudo bem por enquanto. Agora precisamos aqui de hortelã de importação vai. Então, estamos exigindo. Aqui, mãe vai e agora esquema vai humano vai criar esquema kitty. Agora, a próxima coisa que precisamos fazer é, como você pode ver aqui
, compilar esquema do modelo. Então, basicamente, aqui eu quero cavalgar não para o nosso, mas Const. E este é o nosso modelo gatinho e mongóis modelo gatinho esquema Kitty. O que significa que o esquema é como o nosso modelo está se parecendo. Então aqui temos gatinho. E como podem ver, podemos fazer algumas coisas com o nosso gatinho. Vamos, por exemplo, agora depois de começar. Claro, na
verdade, ainda não importa, porque essa coisa não faz um pedido no banco de dados. Mas pelo menos onde, claro, aqui que temos banco de dados aqui. Então vamos nomear silêncio e novo gatinho e recomeçar nossa docker compor. Então, como você pode ver aqui, você pode ver o nome silêncio, que significa que aqui nós criamos uma instância fora do nosso gatinho modelo e tese silêncio e basicamente aqui O que é interessante quando vamos reiniciá-lo novamente? Você pode ver que temos aqui um objeto com I D e nome, o que significa que isso já está criado. entidade de banco de dados Não está salvo, mas podemos salvá-lo agora porque já foi criado por mongóis. Tem um 80. Então vamos verificar como vamos salvar as coisas no banco de dados. Então, como você pode ver aqui, podemos usar métodos. Não precisamos disso. E aqui temos a taxa de mosca ponto seguro. Então, basicamente, exatamente este código que podemos copiar colar aqui conselho. Olha, não
precisamos de esperanças. Quero colá-lo aqui. E ele sempre quis o nome Fluffy em silêncio porque o nosso gatinho é o silêncio. E aqui estamos nós, bem no ponto, salvamos onde andamos. Ligue para Beck e ligue para Beck tem um erro, e silêncio será o nosso resultado. Vamos dar o nome de resultado porque é mais claro. E agora, se alguma vez vamos montar conselho, olhar erro. Em outro caso, queremos tentar. Resultado do registro do cônsul. Então vamos reiniciar nosso banco de dados. Nosso estivador compõe. Desculpe. E como podem ver, recebemos uma resposta inválida. Na verdade, poderíamos corrigir esse problema antes porque, como você pode ver, o problema é que o espaço de nomes não parece correto. Então aqui temos colchetes simples e dentro temos um empate,
em seguida, suportes duplos e, em seguida, gatinhos ponto Basicamente, deve ser um resultado de gatinhos pie dot Este símbolo. A questão é por que é assim. E a resposta é uma linha antes de ser. Veja aqui o banco de dados do cônsul glogg, o
seu l e a diferença entre o hospedeiro e a base perto de El é que aqui temos esta citação
dupla. Não precisamos deles, na verdade. E isso significa que não demos o valor correto de nossa composição de estivadores. Então vamos ver como ficou aqui. Como você pode ver, mongo, Urais foram escritos com aspas duplas e não, assim como uma corda. Se abrirmos este arquivo de referência em compor aqui, você pode ver que eu estou na seção fora do ambiente. E há duas coisas diferentes como podemos escrever um ambiente. Pode ser escrito como um objeto. Então, basicamente, como aqui com Cullen ou com igual sinal e morte aqui como somos votados com isso aqui fora curso, não
podemos corrigir os símbolos porque será simplesmente uma força. Se nós converter tudo toe tal notação, então não importa realmente o que aspas estavam usando, mas em notação com traço. Devemos remover esses símbolos completamente. Agora vamos reiniciar nossas pesquisas com o Dr. e verificar se está funcionando. Como você pode ver, não
temos nenhum erro. Agora banco de dados Ural está correto e que, em seguida, vemos o nosso resultado. Como você pode ver, temos aqui eu d nome e tese V Simples, que é igual a zero. E esta é, na verdade, uma versão. E este é o mercado que nosso registro foi completamente salvo corretamente no banco de dados. Como você pode ver, nós criamos com sucesso para serviços um com banco de dados e segundo com o nosso projeto Uma pizza. E agora tudo está funcionando. Podemos, depois de iniciar o servidor, usar nosso banco de dados e ele está funcionando muito bem. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
13. Volumes: em vídeo anterior com sucesso salvou este banco de dados Silence kitty toe, o que significa que nosso banco de dados está funcionando. Mas a questão é o que acontece quando começamos a compor o estivador. Então, basicamente, toda vez que construímos novamente e novamente nosso contêiner, todos os dados serão removidos dentro e recriados novamente. Então, basicamente, como você pode ver aqui em nosso arquivo docker, nós temos este ponto de cópia que significa cada vez que o contêiner é construído, onde lidar novamente e novamente nossos arquivos que temos aqui, que significa que cada vez que mudamos apenas um arquivo como este índice jazz, então começamos o contêiner e todos esses comandos DACA está tentando fazer de novo e basicamente tudo bem, ele está verificando. Não precisamos fazer a instalação do npm porque fizemos isso anteriormente. Mas então ele copia todos os arquivos, o que significa que basicamente era cada nova compilação irá remover todos os arquivos e criá-los. A Julie. E este é exatamente o benefício do médico porque você sabe que tudo é criado cada vez do zero. Não há nada lá, nada alto E é claro que é bom para fins de teste porque temos certeza de que tudo está instalado do zero. Mas não é bom quando queremos manter informações. E basicamente normalmente precisamos de casos em que queremos persistir. Informação. Primeiro de tudo, é um banco de dados. Nós não queremos remover dados de banco de dados a cada reconstrução e, em segundo lugar, suas fontes fora de nosso projeto, como você pode ver agora em Dhaka, arquivar cada vez que nós reconstruímos nossa imagem. Gravar p todos os arquivos este ponto de cópia significa trabalhar em todos os arquivos fora do nosso projeto novamente dentro da imagem e isso está tudo bem, mas nós não queremos construir uma imagem toda vez que estamos fazendo a mudança, simplesmente não
é eficiente. Então, basicamente, quando ouvimos mudar uma string, não
queremos reconstruir a imagem inteira. Queremos, de alguma forma, armazenar esses dados em algum lugar, mas não dentro do contêiner, porque basicamente, as mudanças estão acontecendo. E não vamos apenas fazer essa mudança dentro do servidor Web. É isto. E há uma solução para isso, que é chamado de volume. Basicamente, vamos abrir a documentação. É realmente bom aqui, e há uma seção que é chamada de volumes, ea idéia é que você pode montar volumes no serviço. Pode ser um pouco difícil, entenda se você não sabe o que é volume. Mas basicamente a idéia é que este é um lugar adicional. Não é uma imagem, não
é um contentor. É um volume, o que significa que é o lugar fora do contêiner onde armazenamos alguns dados. E normalmente o DACA não remove esses dados fora do curso. Podemos fazê-lo se quisermos, mas normalmente entre reconstruções, esses dados estão lá. O segundo benefício do volume é que podemos usar o estado A entre nossos serviços. O que significa quando saltamos para a composição do Docker. E digamos que temos dados como eu não sei,
por exemplo, por exemplo, banco de dados. Queremos toe usar este banco de dados em serval vários serviços não apenas jogou uma torta, mas diretamente usando os arquivos, e podemos fazê-lo com o volume onde apenas dizendo uma caverna que nomeamos este volume eu não sei completo e então dependemos do volume em diferentes serviços, Então basicamente esta é uma idéia, e aqui está um exemplo de como podemos fazê-lo aqui. É um pouco complicado, porque aqui está a saída completa. Não vamos escrever assim. Vamos tentar uma abreviação, Syntex. Então, basicamente, aqui como podemos compartilhar o banco de dados do FBI por enquanto. Então a primeira questão é onde estão os dados e como queremos nomeá-los. Digamos que aqui teria uma imagem. E agora temos volumes, propriedade, e aqui com Dash, podemos escrever, digamos dados mongo db e isso é barra de dados barra db e eu acho que dados mongo db não é bom nome. Vamos mudá-lo. Mas basicamente, a ideia é que a esquerda pode ser o que quer que seja. Apenas um nome completo. Este é o Justin. Identificar para nós e cortar dados barra db Este é o caminho dentro do recipiente. Então este é o caminho onde esses dados serão montados neste volume. Então, basicamente, normalmente, banco de dados
mongo db está aqui em barra de dados Slash para ser. É por isso que estamos Lincoln exatamente no lugar onde ele está agora. E eu acho que o nome mongo db volta eu vou ser mais compreensível porque ele nunca entender Ok, . este é o volume com dados mongo DB. E basicamente, este é o volume que foi criado inicialmente dentro do FBI ou para um P. I. Agora, o próximo ponto. Portanto, isso é realmente suficiente. Se queremos armazenar e persistir dados apenas dentro deste um p I d. Seja, mas com certeza Mais tarde queremos reduzi-los em outros lugares. Para isso, podemos dirigir seção de volume na rota aqui e apenas aqui. Mongo db a p i E aqui mais deve ser uma coluna no final. Então, basicamente, isso significa que este é o nome que será global. E com este nome em qualquer este serviço que temos Por exemplo, em um pi podemos usar este volume. Então, basicamente, vamos reiniciar nosso encaixe, compor e verificar o que conseguimos. Então aqui eu vou rolar no topo de porque é importante. E como você pode ver aqui, temos uma palavra de estado de serviço de aviso I. D. B está usando dados de volume db do recipiente anterior e precisamos remover
contêineres existentes para usar. Portanto, este hospedeiro Meppen não tem nenhum efeito. Então, basicamente, vamos montar este comando Docker compor cerâmica que eu seria. E basicamente o problema é que anteriormente não usávamos o volume e agora o estamos usando . Então, para isso, queremos remover completamente este 80 eu seria. E mais uma vez John Docker compor e vamos verificar se temos algum erro. Então aqui não há avisos e você pode ver que nós criamos com sucesso tudo e aqui não temos nenhum erro. A questão é como verificar se temos volumes não são para estes. Há um comando em Dhaka que é chamado de volume escuro. É realmente você pode bem aqui, apenas aka volume e você vai ter uma boa ajuda. Então aqui está o uso, volume
médico e comando. Então aqui podemos criar volume de necessidade de enterrar para fazê-lo por acaso porque Docker compose está fazendo isso para nós. A razão para inspecionar último Brune e filho. Então, basicamente, vamos tentar o Dr. Volume Ls. E como você pode ver, eu tenho muitos contêineres e normalmente eu terei aqui o nome do volume. Então, como podem ver aqui, temos um estivador do mundo real e um presente será uma torta. E como você pode ver aqui, Munger, debate pi é exatamente o volume que criamos aqui. Agora podemos aqui, doutor inspecionar e depois o nome. Como você pode ver aqui podemos ver quando ele foi criado alguns rótulos e ponto de montagem e assim por diante. Por enquanto, não
precisamos dessas informações, mas basicamente você pode entender que o volume foi criado com sucesso. Eu acho que com uma torta com ele corretamente, é
claro. Mas não estava tão claro como é legal e como são todos os nossos problemas. É por isso que quero mostrar como podemos fazer o mesmo com os arquivos. Então, basicamente, por enquanto em nosso arquivo DACA do FBI estavam copiando todos os arquivos na construção. E isso é bom quando estamos fazendo uma construção de produção, que significa que estamos aqui mesmo Dr. Composto e essas contas e começamos a compor nossa docker . Mas o ponto é que nós também somos um ambiente de desenvolvimento onde foram avisados para alterar arquivos
fonte basicamente para produção. Nós não queremos isso e eu prefiro criar um arquivo adicional como docker compose jahmal, mas para desenvolvimento. E aqui podemos criar Docker compor pensamento desenvolvimento dot jahmal. E agora aqui vamos escrever basicamente o mesmo, mas não tanto. Então ele já criou serviços e sabemos que temos aqui pelo menos ik I e podemos sobrescrever algo aqui que podemos substituir aqui Comando com Yar. Desculpe. Em PM Ron Morte e volumes E eu vou te dizer o que estou fazendo no segundo. Então basicamente em volumes como anteriormente nasceram para especificar o caminho Então o caminho
será uma torta feridas E aqui Colin e, em seguida, usuário e aqui será feridas AP fonte. O que é isso tudo? Então nós temos Docker compor e a idéia fora mais escura que podemos por padrão Se nós apenas tentamos bom docker compor algo Ele leva o stalker compor jahmal Mas nós também podemos dizer docker compor menos f e, em seguida, o arquivo. Então, basicamente, aqui podemos salvar Docker compor jahmal e, em seguida, um modelo quipped
arquivo composto como você pode ver, por exemplo, menos f Dr Campos Jahmal e, em seguida, Docker compor desenvolvimento Yama. E então estamos dizendo, por exemplo, construído como sempre. E a idéia é que, neste caso, pegue tudo do Docker compor e estamos muito felizes Todas as propriedades que definimos no docker compõem o desenvolvimento com propriedades que escrevemos aqui. Isso significa que basicamente levaria tudo a partir daqui, mas em uma seção de pizza sobrevendido comando e volumes como você pode ver aqui. Nós não tínhamos volumes porque não precisamos do dedo porque isso é produção e para produção Nós não queremos mudar arquivos fonte, mas em desenvolvimento, é claro, queremos mudar arquivos de células. É por isso que queremos montar com o volume da nossa pasta de origem. Então, basicamente aqui fonte é montado e isso significa que este é o caminho em nosso sistema. Esta é uma torta de feridas e faz o direito. Você pode ver o caminho dentro do recipiente. Então, basicamente, tomamos o mesmo caminho como ele waas no arquivo Dhaka e aqui o caminho realmente esquece de mudá-lo de volta. É aplicativo fonte do usuário E agora aqui você pode ver que em desenvolvimento é o usuário fonte feridas
absolutas porque queremos exatamente a mesma estrutura. Então, o que significa para a produção foram tomadas arquivo na esquerda Docker compor Jahmal para desenvolvimento estavam bem no comando como este menos f então arquivo de desenvolvimento de arquivos de produção e, em seguida, o nome fora do comando E aqui estavam substituindo comando, o que significa que temos um comando diferente. Então aqui, por exemplo, podemos usar nenhum demônio e se você não conhece nenhum demônio É uma ferramenta para jazz conhecido onde estamos começando em cada mudança de arquivo de observador e temos aqui volumes o que significa que podemos mudar arquivos sem reconstruir o sistema. E vamos verificar como vai parecer primeiro horrível. Vamos instalar nenhum demônio dentro da nossa torta. Então nós vamos para um cara e aqui simplesmente NPM instalar nenhum demônio. Então eu estou instalando e você pode ir, Go. O que é nenhum demônio é E dentro do PM você pode simplesmente instalá-lo, por exemplo globalmente
não precisamos globalmente e, em seguida, direita nenhum demônio e algumas condições ou podemos criar arquivo de
configuração para ele e, em seguida, apenas direita Nenhum demônio, como você pode ver com o pacote instalado com sucesso. Agora vamos saltar para o nosso pacote do céu. Sim, temos aqui nenhum demônio. E agora eu quero criar aqui e você arquivo de configuração onde o conflito fora nenhum demônio irá. Então basicamente o nome será conhecido demônio ponto Jason e este é um objeto. E aqui temos verbais e os verbais são falsos. Mas às vezes você quer ter isso na verdade. Se você está depurando algo, mas também tem placas e esta é a maneira deles. Onde com 55. Quais pastas queremos assistir? E para nós esta é a pasta de origem. E aqui temos exatamente. E este é o comando que queremos executar toda vez que o arquivo é alterado lá. E isto é uma nota. E aqui está o xadrez índice de feridas. Então, basicamente, isso é executivo para comandar que compartilhamos em nosso pacote. Jason, é
isso. Agora temos que criar um novo script aqui é surdo. E aqui nós apenas tentamos nenhum demônio, que significa que quando eu estou pulando agora aqui em um p eu posso escrever e PM John Dev e ele não vai começar nenhum demônio como você pode ver. Mas é claro que recebemos um erro porque estamos perdendo um ambiente muito fora do processo de rebeldes porque nós apontamos para encontrá-los on-line através de docker compose e nós não precisamos
iniciar um programa como este. Mas a questão é que nós configuramos com sucesso não demônio. E agora podemos voltar e começar a compor Docker com desenvolvimento. Então estamos bem em Dhaka comm sondagens, então menos f docker compor Yaman. E aqui eu não disse corretamente. Deve ser mais uma vez um eu menor. Então, o próximo arquivo, e então você está certo no próximo arquivo que irá substituí-lo. E aqui nós construímos. Então este é Docker compor nome de arquivo auto-secundário menos um nome de arquivo e, em seguida, o comando. Então eu estou apertando Enter e como você pode ver, onde construir coisas também, como você pode ver aqui nós temos um pago para ser usado para Nimitz pular. O que significa que DACA vê que eu seria não foi alterado. E não precisamos fazer nada aqui, então construímos uma torta. Como você pode ver, não
temos nenhum erro. E aqui temos alguns avisos, mas não importa, e foi construído com sucesso. Agora vamos começar. Então, estamos escrevendo. E como podem ver, está
funcionando e nosso anfitrião está lá. Vamos recarregar a página para que possamos ver que ela está funcionando. Slash Test está funcionando, não testa o nosso Um serviço de pagamento está funcionando. Então agora eu vou apertar enter várias vezes para limpar a tela. Mas meu serviço ainda está lá. E agora vamos pular em uma pasta de empate na fonte, digamos no índice e aqui podemos simplesmente direita, não resultado, mas resultar com volumes. E salve estes e geléia Beck. Como podem ver aqui, temos algumas mudanças. Então, basicamente, de um p, eu vou ter uma mensagem. Nada de demônio, apenas começando Q duas mudanças, o que significa que não construímos uma imagem. Mas DACA Então nossas mudanças aqui porque três e não demônio dentro do recipiente e ele vê as mudanças nesta pasta, e como esta falha está dentro do volume, não
está dentro do recipiente. Então essas mudanças estão acontecendo dentro deste volume. Então, estamos mudando neste arquivo e este arquivo automaticamente Israel ou fez anteriormente, grande e Web Serra. Então aqui, nenhum demônio começou sem cadeiras de índice de fonte e estamos recebendo o mesmo aviso de sempre, mas basicamente nosso projeto foi iniciado, e aqui está o resultado com volumes, que significa agora com cada salvar nosso contêiner vê as alterações e nosso servidor Web está sendo reiniciado. Então isso é exatamente o que queríamos para o desenvolvimento. Felizmente, quando fazemos algumas mudanças no frio, nossa docker compor simplesmente nos mostra as mudanças. Não precisamos reconstruir contêineres ou fazer coisas como estamos fazendo para produção. Eu acho que este exemplo ilustra o uso de volumes muito melhor. E a última pergunta que talvez te incomode. Por que aqui? Escrevi assim e em desenvolvimento resultou assim. Então aqui temos volumes na estrada e ele não são tão basicamente, esta é a notação nomeada, que significa onde nome em volumes na estrada. E isso significa que podemos reduzir esses volumes em todos os lugares. Aqui, aqui, não
se chama volume. É no volume de linha onde estamos usando o volume em linha, que significa que não precisamos reusar a fonte de um cara em qualquer lugar. É por isso que simplesmente dizemos na linha. Ok, por favor pegue esta pasta e coloque-a aqui como montar. É isto. Então eu espero que você entenda agora como os volumes estão funcionando e por que precisamos deles como sempre. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
14. Serviço de vigas: no vídeo anterior trabalhou com nossos volumes. Agora sabemos como podemos usar os dados fora de nossos contêineres. Então, nosso serviço de torta agora, aqui está o banco de dados lá dentro. Estávamos conectados ao banco de dados e podemos começar a escrever código. Então, basicamente, nosso serviço de torta A agora está totalmente pronto, e você pode apenas aqui qualquer projeto ou uma torta que você precisa. Agora, vamos chegar ao nosso outro serviço de sindicalização. Então, basicamente, como você pode ver aqui, podemos copiar colar tudo o que temos dentro do nosso FBI porque usaremos o mesmo ser
conectado. Mas, claro, será outro banco de dados, e também teremos servidor de início, e basicamente, a estrutura fora dos arquivos será a mesma. Aqui estarão mongóis e Connect. E aqui teremos configuração. Vou copiar as duas corujas do FBI e proceder exactamente da mesma forma que fizemos com o FBI. Então temos aqui um arquivo dr do Node Working Directory, e estamos fazendo o mesmo material. Mas basicamente, estamos fazendo isso apenas por causa da simplicidade. Porque, na verdade, quando temos serviço, isso significa que podemos ter tecnologias completamente não relacionadas. Talvez queiramos escrever a cidade I com Ruby nos trilhos, então está tudo bem. Então aqui teremos arquivo DACA, que irá construir nosso projeto ruby on rails. E, claro, então temos outros arquivos aqui nas fontes e até mesmo esta pasta de tortas que será um depositário adicional e alguma outra equipe bem conservada no assento I O que significa que este é o principal benefício do médico você criar pequenos serviços não são pequenos. Isso é com você, e os serviços de tese estão fazendo um único propósito. Então, por exemplo, nosso serviço do FBI está apenas implementando uma torta para nossas entidades. E nosso serviço de autenticação pode ser escrito em outra tecnologia. Se queremos Toe está mantendo por outra equipe e eles estão fazendo indicação lá que eles podem, mesmo com a ajuda do arquivo DACA aqui céu tese Irã sem todos os outros serviços, se
quiserem . Então vamos ouvir agora. Minha pasta de autenticação está vazia e eu vou apenas copiar e colar uma torta como fora. Basicamente, nós apenas fazemos isso pela simplicidade porque aqui nós expressamos mangas e demônio conhecido. Então este é exatamente algum outro serviço onde nó está trabalhando. Então vamos verificar se tudo está correto. Aqui temos nosso demônio desconhecido para desenvolvimento e temos quatro feridas exatas. E aqui temos configuração que em todos os lugares tudo é apátrida e este é o benefício. Poderíamos simplesmente copiar colar a pasta e não precisamos alterar nada porque toda configuração é comum de fora. Nós também usaremos aqui mongo, db mas o outro banco de dados e completamente outro serviço. E também aqui no nosso índice, nos conectamos ao Mongo DB. E aqui temos que fazer o teste. Mas isso é autenticação, então vamos bem aqui nossa autenticação. Sarah está funcionando corretamente, e agora aqui começou o serviço de indicação no porto e aqui será o nosso porto. Então isso é basicamente comer aqui. Nós podemos realmente remover as coisas que temos com gatinho e criança e seguro porque sabemos que o banco de dados vai funcionar. Então, basicamente, este é apenas um exemplo de como nosso projeto pode reconstruir com banco de dados e serviços. Então, basicamente, agora aqui estou quase limpo. Aqui está a nossa placa de serviço de sindicação. E aqui temos o banco de dados conectado. Agora vamos verificar o arquivo de encaixe. Este é exatamente o mesmo diretório de trabalho. Isso é completamente bom porque é completamente outro recipiente que estamos usando aqui. Nota CO P e P M instalar tudo está olhando bem. Agora vamos saltar para o nosso estivador Compose. Então aqui temos um P I e D p i d.
Ser. E eu quero aqui criar mais dois serviços um para sindicação,
um p I, um p I, e o segundo para o nosso banco de dados de sindicação. Então, basicamente agora, como podem ver, meu médico compõe a corrida. E agora, quando eles saltaram para o console, eu posso secá-lo Dark ups e Tokyo PS significa Dr. Processos. Então estes são dois processos que o Iraniano agora o 1º 1 é o nosso recipiente visita torta. E o 2º 1 é contêiner com banco de dados e aqui no final. Então estas são as placas e este é o eu d e assim por diante e que você tem o nome. Então, basicamente, nomeie Israel World Doc ap I menos um e aqui um p i D B menos um. Então, basicamente, os nomes não são tão ruins, Mas apenas suponha que você tem como, vários projetos em sua máquina. Por exemplo, eu não sei cinco e você tem o critizado cada projeto e dentro. Se tem serviços como 10 ou 5 talvez e então em Dhaka processa você ela,
tipo, realmente gosta de 50 contêineres. E você quer realmente distinguir qual serviço aqui ou qual recipiente está relacionado a qual serviço E então você pode, por exemplo, verificar quais partes expostas aqui. O que o comando está usando é e assim por diante. Portanto, isso é útil, mas queremos torná-lo mais legível. Então, basicamente, esse nome não é 100% legível. Claro que podemos entendê-lo, mas basicamente a idéia é que em cada serviço podemos especificar o nome do contêiner. Então vamos dizer que agora uma torta estava dizendo que o nome do contêiner é igual e eu gosto de regras estritas de nomeação , que significa que eu estou nomeando tudo com os nomes ritmo fora do projeto. No nosso caso, será riel mundo traço médico, e depois traçar o nome do serviço. Então, neste caso, será um p I. Agora vamos copiar o nome do contêiner para o nosso a p i d ser e nomeá-lo barra Keep I slash db Então agora vamos reiniciar nosso docker compose e verificar quais são os nomes. Então vamos correr mais uma vez e você vê aqui que nós temos nomes normais como nós fornecê-lo agora com esses nomes, É muito mais fácil de trabalhar e entender. O que é este recipiente e está ligado agora? Vamos começar descrevendo nosso serviço de torta A. Esta será uma torta para a indicação da nossa casa. Então vamos dar um nome. Digamos que corujas e eu acho que isso é suficiente porque sabemos que nossa cidade é apenas relacionado com serviço de autenticação. Agora aqui nós construímos e nossa compilação está assistindo quatro horas projeto Indication, o que significa que esta é a pasta de autenticação e há arquivo Docker dentro. Agora vamos falar sobre o nome do contêiner. Estamos fazendo o mundo real,
ou pode, ou pode, pois o prefixo e o nome do serviço estão fora da indicação. Agora, que comando teremos? E aqui temos no PM Ron começar exatamente como em nosso serviço de torta, porque estamos bem dentro. Agora, o arquivo para a próxima produção é Coração de Pulso. Então vamos prender o Art, a menos que seja parado. Nós já falamos sobre esta opção apenas para lembrar o seu recipiente será
reiniciado automaticamente se foi, por exemplo, não começou corretamente ou era Dreesen. Se ele não foi parado no próximo ponto, facilitar o nosso um porto. Então, basicamente, aqui as importações. Podemos dizer que pobre queremos expor? Então, vamos aqui mesmo. O 3001 e vamos mapeá-lo para 3001. Então, o que significa que três solvente um será o nosso porto dentro e fora. Agora vamos falar sobre o ambiente. Então aqui temos nosso porto, que é 3001. Agora temos o nosso anfitrião. Não sei, na verdade, se precisamos ou não. Então eu vou apenas rolar corda aqui e eles pensam mais tarde vamos removê-lo uma mudança se
precisarmos dedo do pé e o último. O mais importante é o Mongol Ural. Então aqui entre o seu Ellis Mongo DB E aqui nós não teremos um p eu d ser, mas corujas DB e será um serviço adicional para autenticação. Então vamos fornecer aqui nossa porta e vamos nomear o banco de dados para fora. Acho que é suficiente. E agora temos nosso bloqueio em relação ao serviço de autenticação. Agora é hora de escrever autenticação para ser, eu acho que também DB é realmente bom nome. E aqui temos o mesmo que tínhamos para um banco de dados de torta. Então nós fornecemos nossa imagem mongo. Então temos um nome. É realmente o mundo. Ok, este é o nosso DB. E agora temos volumes. E basicamente, neste caso, será Mongo DB House e o Ural dentro. Nosso servidor será no mesmo dia para DB. E agora devemos aderir. Volumes nomeados Mongo DB corujas e, em seguida, Colin. Então, basicamente, como você pode ver aqui, nós adicionamos novas corujas para ser e nós adicionamos Novo bloco para serviço de autenticação. Vamos verificar se a composição do estivador ainda está funcionando. Então vamos parar a nossa docker Compose e simplificar o Dr. Kam. Pesquisas minutos,
minutos constroem. Então eu não uso muitos self aqui porque eu não quero testar nosso ambiente de desenvolvimento. Então agora estamos construindo nossa produção. Então aqui é você pode ver um monte de nosso iniciado que temos Aqui estão dois b e F B I d ser e vamos rolar um pouco no topo para ver que tudo está bem, como você pode ver aqui havia três linhas sobre nossas corujas que começaram a autenticação serviço na pobre 3000 e nossa facilidade anfitriã e este é o Ural que nós fornecemos. Então, basicamente, parece que funciona. Então, aqui estávamos conectados toa são db e vamos verificar no topo. Normalmente, se você tiver alguns avisos, eles estão no topo. Então eu vou rolar aqui mais e como você pode ver com sucesso construir bem sucedido atacou uma torta mais recente e assim por diante e temos anexando e eles não vêem quaisquer erros. Então, basicamente, você também pode ver a linha criada volume e aqui está um bom para estar fora. Então, basicamente, Docker compor criados magicamente para nós volumes porque nós descrevemos aqui como um volume nomeado e ele criou o volume da tese. Então agora os dados fora de sua indicação off no banco de dados serão persistidos dentro do volume, então parece que tudo está funcionando. E agora vamos pular navegador de armadura e seco 3001 corte teste. Como você pode ver, aqui temos nosso servidor de autenticação está funcionando corretamente e agora podemos saltar para 3000 0 e nossa pesquisa do FBI já está iniciada, que significa que estamos chegando ao momento em que nós com um comando sem instalação, qualquer coisa em nossa própria máquina pode começar a trabalhar no projeto que tem como diferentes serviços dentro, e ele apenas funciona fora da caixa. Você nem precisa saber o que foi instalado. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
15. Serviço de frontends: já implementamos nosso serviço e serviço de autenticação do FBI. Fora do curso. Vamos implementá-los um pouco e ver como os serviços podem trabalhar entre eles um
pouco mais tarde. E neste leitor, eu quero me concentrar em nossa frente e serviço. E, na
verdade, é um pouco complicado. Como eu já disse, Sente-se em Dhaka pode estar tratando então basicamente leva tempo para entender todas as propriedades, entender como colocar o seu projeto dentro. E do meu ponto de poucos colocar na frente e parte fora É a parte mais complicada de
trabalhar com cabelos escuros. E você pode perguntar por que é assim basicamente, em muitos projetos como, por exemplo, criar aplicativo destruído quando você apenas instalá-lo fora do curso que está trabalhando fora da caixa. Mas você tem coisas tão boas, como trabalhar com console interativo. Então, por exemplo, quando você começar a criar raked up como este, você vai receber uma mensagem como algo é sobre para o iraniano em seus portos 3000. Deseja iniciá-lo em outra porta e basta clicar? Sim, E ele está começando em outra porta ou, por exemplo, que um aplicativo criar destruído ou outra ferramenta que também são populares como, por exemplo, para Angela, onde você começa em Geezer Va e, em seguida, foi longa Polônia ou, por exemplo, com soquetes Web. Ele atualizará suas alterações magicamente no recarregamento do resultado da página. Então, basicamente, vocês näo precisam ficar aqui no nosso calor cada vez que o Senhor vê as suas mudanèas. Eu realmente não posso dizer o tempo defender este mantra quente lording e pelo menos três Lloyd em página quando ele quer na frente. E, na verdade, se estamos vivendo no mundo do Javascript, não
podemos seguir outro caminho, então só precisamos trabalhar com ele. Então vamos instalar agora a nossa frente e parte com criar aplicativo destruído. Então, basicamente, se você não sabe o que é isso? Criar deb destruído, há ferramenta especial que instala para você reagir com todas as dependências. Fim do observador. O que significa que você apenas escrever um comando como e picos ou em PM, criar aplicativo, meu ab, e então você apenas obter a pasta com arquivos boilerplate e você só precisa escrever frio lá. Então, aqui você pode rolar a seção npm e é assim que criamos um aplicativo criar reitor em nossa máquina. Então vamos pular para o console. Estou dentro do Riel World Doctor Folder. E aqui eu também tenho frente e pasta. Não está funcionando assim, então precisamos remover essa frente e cair primeiro. E então nós podemos montar este comando e pm necessitado reagir ab e agora aqui vai ser o nome e nosso nome estará à frente. E então eu basta clicar na frente e, como você pode ver, criar aplicativo destruído e instala todas as dependências e, em seguida, nossa frente e pasta serão criados. Então, só precisamos esperar até que todos os arquivos sejam instalados. E estamos prontos para ir. Crie pacotes antigos reativos e instalados
com sucesso. E agora estou dentro da nossa frente e directório para podermos ver os nossos ficheiros. E agora aqui podemos escrever início NPM. Então, com este comando, como você pode ver, temos este console interativo, então basicamente criar enganado aplicativo nos pede que já existe algo em execução no pobre 3000 e na verdade, isso é mais escuro. E você gostaria de executar o aplicativo em outra porta em vez disso? E só estamos dizendo que sim. E agora, no navegador, temos este host local Ural 3002 e aqui temos ajudado o aplicativo fonte e seguro o sangue. Então, basicamente, quando saltamos diretamente no console e ir para a frente e fonte e, por exemplo, FGs. Então aqui você pode ver algumas cordas que você pode ver aqui, editar assuntos doloridos e salvar dois dependeu. Então vamos colocar alguns bancos aqui e então você apenas qual dedo do navegador e você recebe este texto aqui. Como você pode ver, nossa criação reage, ajuda está funcionando, mas está funcionando em nossa máquina agora. Precisamos de alguma forma ajustá-lo da maneira que podemos usá-lo dentro de Dhaka. Então eu vou desistir da Web Serra deles na nossa frente. E por agora e agora podemos saltar dentro do nosso arquivo docker compor e tentar criar um novo
serviço para a nossa frente e, basicamente, soa que as coisas serão semelhantes como fizemos antes. Então temos aqui frente e construir pasta e, em seguida, temos aqui conter um nome que Israel docker
mundo e aqui será front-end e também precisamos de portas e como você viu por padrão grande aplicativo destruído é Ronnen Importação 3000. Então, basicamente, aqui. Nós podemos escrever 3000 3000 e então aqui vamos mudá-lo dentro do nosso FBI. Então aqui não podemos ter o mesmo porto. Então, dentro é 3000. Mas lá fora será então 3001. Então, aqui, vamos fazer tudo semelhante. E vamos ficar com o mesmo nome. E assim temos tudo. Uma porta aqui é uma especificada. Então é um dentro e outro fora. E o mesmo para autenticação Portis para então aqui nós temos que. E lá fora. Nós também temos que agora, é
isso. Nossos portos são especificados. Agora precisamos adicionar a propriedade de reinicialização. Então o começo será a menos que seja interrompido. E precisamos da nossa propriedade para o comando. Então, basicamente, o comando será no início PM. Na verdade, podemos escrever sempre em PM Ron, começar pelo bem que é o mesmo em todos os lugares. Então nosso comando Andrew Start está lá, e se tentarmos iniciá-lo agora,
não funcionará . E a questão é por quê? Porque devemos ter problemas com este console interativo para que possamos tentar iniciá-lo agora . Mas basicamente não vai funcionar. Eu já tentei, comer e eu tenho um problema dentro do conselho diretiva. E então eu pesquisei no Google e a questão do ar razão em criar aplicativo enganado com três x script. Então, basicamente, diz que uma nova versão do Rex Creeps e, na verdade, não foi há muito tempo, estava falhando em
começar dentro de acoplá-lo. Então, basicamente, o ponto é que precisamos especificar propriedades especiais para o nosso docker compor para dizer que queremos console interativo. Então aqui para estes estavam dizendo como hoje em aberto e será verdadeira entidade U igual a verdadeiro e você pode verificar se você quer este problema em criar destruído AB E basicamente a solução com Docker compor foi exatamente para fornecer. Essa coisa está aqui, então isso é realmente importante porque nós temos Montreuil Orden quente dentro criar AB destruído e nós queremos ter um conselho interativo. Agora vamos tentar iniciar a nossa docker compor como você viu eu já tentei e ele está
quebrando porque temos um estreito não é possível localizar arquivo DACA especificado, que significa que não criamos arquivo DACA dentro da nossa pasta com front-end. E sim, isso é exatamente comer. E é por isso que gosto de compor docker porque a mensagem está desligada. Erros são realmente compreensíveis. Então, basicamente, vamos especificar em nossa frente e pasta arquivo docker, porque sem Dr File, não
é um serviço e realmente quero copiar base aqui, arquivo
doc porque eu não quero escrever do zero, que significa que só pegamos o arquivo médico que já temos quando o stall lá dentro é conhecido. Isso é realmente importante porque outro caso, não
podemos instalar modelos de nó dentro para a nossa frente e temos um diretório de trabalho aqui. Nós copiamos colar nosso piquete Jason, como você pode ver dentro da frente e nós também temos escolher um Jason com roteiro e assim por diante. Então estamos executando NPM instalar e nós Korpi arquivos antigos. Então agora deve ser o suficiente para construir o nosso front-end. Como você pode ver agora estamos construindo frente e co abrir todos os arquivos e em estilo em pacotes com nó dentro de seu recipiente. Como você pode ver, todos os pacotes que eu instalei, nossas imagens foram construídas e agora vemos a mensagem de que ele foi iniciado com sucesso primeiro horrível. É muito bom olhar dentro da janela ps para ver processos. Como podem ver, temos muitos processos. Quarta indicação FBI, em seguida, fronton nosso banco de dados e HKTB, então tudo parece funcionar e agora
podemos abrir criar raked ab no host local 3000. Mas é claro que há pequenas mudanças que queremos fazer. Em primeiro lugar, como você pode ver, este é o desenvolvimento construído. Então, basicamente, aqui estamos em produção. Então Docker compor Yam é para produção. É bom para testá-lo assim, mas basicamente mais tarde queremos aqui não desenvolvimento servidor Web mas apenas construí-lo para produção e manter coma s estático CSS e JavaScript Por enquanto ele está funcionando, como você pode ver, mas nossos volumes não são Lá. Então, basicamente, não escrevemos nada sobre volumes, o que significa que nossas mudanças no código não mudarão nada. Então, vamos aderir volumes apenas para a simplicidade fora do teste. Então, basicamente, da mesma forma que fizemos para o nosso desenvolvimento, eu vou ser corporativo por enquanto. Volumes aqui dentro da frente e parte apenas para o bem fora de um teste rápido. Então, como você pode ver aqui, temos uma torta de feridas. Nós não precisamos dele. Precisamos da frente e da fonte. Então, agora, quando mudamos tudo dentro da frente e feridas, vamos atualizá-lo na fonte do usuário Uma fonte de pizza. Isto é bom. Vamos apenas reiniciar nossa compilação de composição de encaixe. E agora, quando mudamos alguns arquivos dentro da frente e vacilar, ele deve ser alterado automaticamente. Como você pode ver, foi compelido com sucesso. Agora pulamos para os nossos FGs dentro da nossa frente e vamos aqui, ele baixou de dentro do Dr. Just Save. E eu nem recarrego a página sozinha. Mas você pode ver aqui que ele foi atualizado com nossa string que nós fornecemos aqui, que significa que agora sem a compilação com a ajuda fora do nosso volume que nós criamos apenas com uma única linha podemos atualizar o código na frente e e ele está compilando com sucesso, o que significa nossa frente e já está pronto, Toby escreveu. E se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu vou respondê-los com certeza.
16. Running na produção: no vídeo anterior, criamos nossa frente e serviço e está funcionando. Mas nós fizemos isso realmente cru porque aqui está nossa produção con fuga e como você pode ver, onde escrever coisas que estão relacionadas ao desenvolvimento. Então, basicamente, só para lembrá-lo que este arquivo é apenas para produção. Se quisermos substituir algumas propriedades para desenvolvimento, nós as substituímos em nosso jahmal adicional com desenvolvimento DOT. Então, basicamente, aqui agora em desenvolvimento, temos apenas alguns direitos para guardar nosso cara. Então nós precisamos aqui para adicionar também coisas sobre front-end e talvez sobre nós. Mas primeiro horrível. Eu vi uma propriedade que está faltando. Então, como você pode ver aqui no FBI, nós temos depende de um p eu poderia ser amigo Agora, nós não escrevemos isso aqui, então vamos basear isso agora. Deve ser. Depende e aqui deve ser o nosso. Você pode se perguntar o que vai acontecer se nós removermos daqui? Depende de. E, claro, a resposta é que Docker compor não sabe que ordem precisamos nos serviços. Então docker compose vai apenas iniciar um serviço como é como de cima para baixo. E é isso Basicamente, no caso com depende Docker compor entende. O
nosso serviço depende do nosso banco de dados, o que significa que primeiro temos de começar a ser. E se ele não vai fazer isso, vamos ter erros quando começamos Doctor composto porque base de dados de autenticação não está lá, mas estamos tentando se conectar a ele. Então é por isso que precisamos aqui. Depende de ser agora vamos voltar para a frente. E então aqui tudo como nós temos aqui é para o aberto e tt você e isso que precisamos
para este observador interativo de nossos volumes de aplicativos criar reagir também foram necessários apenas em desenvolvimento, porque queremos mudar arquivos Onley em desenvolvimento. Então a questão é, se este arquivo Israel sobre produção nós não escrevemos as coisas corretamente e isso é certeza comer. A questão é o que vai acontecer se saltarmos para a nossa frente e pasta e Ron e PM Ron construírem. Este é o comando que é projetado por criar acumulado e como você pode ver aqui nós recebemos uma mensagem. Assim, criando uma compilação de produção otimizada compilada com sucesso. Então nós compilamos nosso front-end e ouvir de arquivos que obtemos é um resultado. E aqui algumas mensagens como Toby, a pasta de compilação está pronta para ser implantada e você pode servi-la como um servidor estático. E exatamente isso que queremos fazer Queremos servir nosso servidor como estético. O que isso significa? Fora do curso. Nós não queremos mantra quente Senhor em produção se checarmos aqui dentro de nossa frente e construirmos Então aqui estão todas as coisas que estão relacionadas com a produção. Então, basicamente aqui, como você pode ver em vez de IQ com KFC avaliar NGS e basicamente aqui nossas ações principais é com empacotado com todos os pacotes que precisamos, que significa que não precisamos de mais nenhum negócio, fonte ou qualquer coisa que possa remover todos os arquivos exceto fora da pasta construída porque somente essa pasta é necessária para produção. Então, basicamente, queremos começar em nossa produção nosso servidor, que servirá arquivos estáticos. E aqui está um bom exemplo de como você pode servir e iniciar servidor estático para que possamos instalar pacote que é chamado servir dentro PM, como sempre, e podemos construir então tão auto menos como construído pasta Construções onde servindo tudo ,
que está na pasta. Então, basicamente aqui na construção, temos índice html é ampliado. E aqui temos algumas dependências para a nossa estética para xiita diz JavaScript e assim por diante. Então é exatamente isso que queremos fazer. Então, basicamente, para testá-lo em nossa própria máquina, podemos escrever em pm install global e, em seguida, aqui você está certo e servir. E isso irá instalar pacote de servir e sua máquina. E então você pode começar com este comando servir menos como compilação e, em seguida, ele vai começar. Como você pode ver na porta 5000. Se queremos cuspir C cinco placa, podemos andar menos l e, em seguida, a porta é que você pode ver que também funciona. E agora no anfitrião local 3001 estamos a lidar com o nosso ampliado. Você pode ver isso em feridas. É ampliado html onde temos o nosso CSS unificado e JavaScript. Então, exatamente isso que queremos criar dentro do nosso médico, então, basicamente, vamos verificar. O que precisamos primeiro? Horrível. Quero entrar na frente e na pasta e ver o arquivo de encaixe. O que precisamos fazer aqui? Basicamente queremos primeiro dedo do pé, construir nossas fontes e podemos fazer isso pelo iraniano no PM John Build. Isso é exatamente o que fizemos aqui. Como você viu. Primeiro de tudo, somos velhos em PM Ron construir e, em seguida, considerar esta pasta compilação e você pode dizer OK, mas por quê? Estamos bem aqui. Estamos usando o arquivo Docker para produção e desenvolvimento. E você está totalmente certo. Se você não quer fazer isso construído em desenvolvimento porque na verdade você não precisa, você pode criar dois arquivos médicos diferentes um para produção, um para desenvolvimento. Por uma questão de simplicidade, Vou apenas furar arquivo dewandaka e, na verdade ,
sim, Este comando não é necessário no desenvolvimento, mas não vai demorar muito tempo. E nós não estamos construindo são imagens que muitas vezes, então isso é bom. A próxima coisa que precisamos fazer é instalar dentro de cabelos escuros este pacote de servir. Então, basicamente, depois disso, podemos acertar, Ron, em pm serviço global e não servidor, mas servir. E isso irá instalar este pacote depois de construir a imagem para que ele esteja disponível dentro . Agora precisamos pular a torre Docker compor em mudança nosso comando. Então, por enquanto é NPM Ron Start. E isso não é o que queremos começar. Nós queremos agora. Sirva como fizemos aqui. Você se lembra Serve menos tem realmente podemos copiar colá-lo para que ele deve ser servido menos s Construir edifícios uma pasta. E aqui é 3000 porta basicamente exatamente a mesma porta como era aqui. Então vou comentar tudo o que não é necessário para a produção. Agora vamos escrever Docker, compor,
construir e verificar se está funcionando. Estou ficando aqui um estreito que frente de serviço e caiu para construir e PM menos G servir retorno zero frio. Obviamente cometi um erro, sabe, um arquivo médico. Esqueci-me de escrever e pm instalar. Então isso não é um comando. É por isso que eu estou ficando estreito Como você pode ver você desta vez eu não tenho nenhum erro. Agora vamos rastejar para o topo. Em algum momento, devemos ver algo que está relacionado a servir. Então, como você pode ver aqui nós construímos com sucesso tudo. E agora em algum lugar servir deve ser iniciado. Então aqui está uma torta e assim por diante. E aqui deve ser frente e é ele. Veja, não vejo nada relacionado com a frente. E, mas há um comando especial para ver os logs fora do contêiner. Então sabemos o nome do contêiner que Israel World Docker Front e eu copiarei. E agora podemos montar registros DACA. E então o nome é Você pode ver aqui temos uma informação exceto em conexões e no sapato TPS local host 3000. Então, basicamente, isso é tudo registros que obtemos de nossa frente do mundo real e parece que está funcionando. Vamos recarregar a página. E como você pode ver aqui, estamos recebendo nossa página. Agora vamos atacar as feridas e, como você pode ver, está ampliada. Então é exatamente o que preparamos. Agora vamos verificar se a nossa frente e ainda funciona em desenvolvimento. Então, para estes, eu quero copiar tudo o que eles comentaram para o nosso doente de incêndio desenvolvido. Então aqui está o desenvolvimento, e aqui queremos criar serviço de frente e fim de um passeio dentro de várias propriedades. Então é assim que parece que aqui é espaço vazio apenas para leitura. E aqui, primeiro lugar, queremos outro comando. Então aqui o comando estará no PM Ron, Morte. Como se lembram, este é o nosso servidor da morte. Espero que sim. Ou talvez eu esteja atraído. A Beckett. Jason, podemos ver que nosso comando é começar não surdo. Então comandos surdos que fizemos em nossos projetos de IA. Mas isso é criar aplicativo destruído. E aqui está. Começa. Então eu estou pulando de volta para desenvolver e aqui está no PM rants cansado. Isto vai começar um servidor de morte e aqui temos os nossos volumes. Esta parte é muito importante porque queremos mudar os arquivos imediatamente. E essas coisas são importantes para o nosso console. Agora vamos reiniciar mais uma vez nossa docker compor e aqui precisamos basicamente, eu quero começar não para produção, mas para desenvolvimento. Então deve ser menos Docker compor jahmal menos sete Docker compor desenvolvimento Jahmal-se menos mentes construídas em Dhere. Estamos ficando um estreito porque eu estou na frente e pasta e não na pasta correta. Então vamos começar de novo agora ele está funcionando e vamos verificar se ele está trabalhando com atualização na frente e como você pode ver aqui, eu estou recebendo em seus logs que nossa frente e serviço. Ele foi iniciado e você já pode ver que esta parte é de criar aplicativo destruído e isso não
é produção. Construa um com muito a página. Agora é, espero que sua parte de desenvolvimento. Então vamos verificar se é assim, vamos saltar para a frente e fonte e objetos e bem aqui Oi, eu estou desenvolvendo, como você pode ver aqui, minha página waas automática pouco elogiado e eu estou recebendo aqui a mensagem Então basicamente Isso é exatamente uma idéia. Então aqui estamos certo em tudo, O que é possível e à direita no desenvolvimento Yama foram substituir em coisas que queremos fazer de forma diferente no desenvolvimento, isso é muito mais fácil do que dedo do pé. Só um apoio. Dois arquivos diferentes que não estão completamente relacionados. Então estamos tentando fundi-los o mais fácil possível. Como você pode ver nossa frente e este Irã bem sucedido e em produção. E se você tiver quaisquer comentários ou perguntas, sinta-se livre para perguntá-los e eu vou respondê-los com certeza
17. Executa do Docker: nesta mídia. Eu quero falar sobre magia, pelo menos espero que você entenda que não há nenhum
médico mágico Insigne e eu posso mostrar-lhe algumas coisas que vão mostrar-lhe que não há nenhum grande maestro completamente. Então, basicamente, aqui. Como você pode ver, meu médico compôs Israel na lição anterior e em consulados. Anteriormente, podemos dirigir logs do Docker, por exemplo, ou daki ps. Então Doc Ups está mostrando nossos contêineres e registros DACA. E digamos que com o nome de Rial Worlddy Chi, podemos ver o que temos em nossas fechaduras? Então é concede muito mais fácil de entender os logs aqui, em
seguida, para vê-los se nós rolá-los em Dhaka composto como você pode ver agora, nosso aplicativo criar destruído removido e bloqueado completamente a tela para que um não pode rolar para trás. Então limpou todos os bloqueios da tela. Então é por isso que a cerveja do próprio Doc é muito melhor festival que ela pensa sobre o relacionado a um sarees. E é mais fácil para o saco e você pode ver aqui, por exemplo, começou uma torta na porta 3001 e assim por diante. Agora eu quero mostrar mais um comando que é chamado DACA exato. E o que ele faz isso DACA exato e, em seguida, menos I d e, em seguida, o nome fora do recipiente. Então, é quando queremos executar algum comando dentro de nosso contêiner, o que significa que quando fazemos algo como ar completamente em nossa máquina, esse comando está acontecendo em nossa máquina. Mas é claro, às vezes queremos fazer alguns comandos dentro de contêineres E o comando mais popular que eu estou fazendo sempre é o comando para ir dentro do contêiner em um shell porque basicamente você não quer apenas escrever uma vez Foo Foo e o pedágio normalmente quer saltar dentro do recipiente, verificar alguns arquivos, verificar alguns logs, alterar algo e assim por diante. Então, basicamente, vá para dentro da casca fora do contêiner Você precisa escrever DACA exato, então menos 80 E aqui vai ser o nome do nosso contêiner. Eu tomei, por exemplo, uma torta e agora como um juiz que eu e shell e nós estamos batendo aqui e aqui e eu
já estou dentro recipiente. Então aqui podemos escrever, por exemplo ppd e você pode ver o tempo no aplicativo de origem do usuário E você pode perguntar por quê? Porque aqui dentro do FBI dentro do nosso arquivo docker sussurrou nosso diretório de trabalho. E aqui quando montamos, infelizmente, você pode ver que temos arquivos relacionados ao nosso projeto. Basicamente, todos esses arquivos, exceto as feridas são corp dentro com esta cópia de comando e apenas a pasta de origem. Ele está trabalhando, como pode ver, não aqui. Mas se construirmos como para o desenvolvimento, então esta pasta estará dentro de volumes. Mas, basicamente, ainda assim, você pode ir na fonte e ver o que está lá. Verifique o conteúdo fora do arquivo, por exemplo, e assim por diante. Então a idéia é que pelo menos você pode pular assim dentro do contêiner e fazer algumas coisas primeiro. Horrível. Você pode entender que o recipiente não tem nenhuma magia, então você pode pular para cortar e ver que isso é apenas completamente padrão. Lynn não parece nada alto, novo e baixo. Vamos entrar no nosso projeto. E como você viu aqui dentro de uma torta, ele é um aplicativo fonte do usuário e esta é a pasta que foi criada fonte EP. E nesta pasta nosso projeto está vivendo e basicamente aqui. Podemos fazer o que quisermos, talvez começar algo e assim por diante. Mas esta é uma abordagem muito agradável quando você precisa verificar o que os arquivos têm fazer alguns comandos dentro do recipiente como,
por exemplo, por exemplo, sentir banco de dados de namoro e assim por diante. Então, basicamente, saia, você apenas escreve a saída e mais uma vez, Togo em Dhaka exatamente menos que o nome do contêiner e o comando fora do curso. Você pode se juntar aqui para comer, mas não vai te dar muito. Sim, ele escolheu completo e esta é realmente a saída do seu recipiente. Mas normalmente você quer saltar para dentro e fazer alguma coisa. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
18. Configurando o nginx: em vídeos anteriores com a configuração bem-sucedida de Nossos Serviços para Front e A P I e autenticação. Agora é hora de falar sobre como vamos exceder os serviços através do navegador. E por que precisamos de engenheiros aqui? Espero que você já tenha algum conhecimento com em jinx, e se não, então você pode simplesmente abrir em genes, por exemplo, Wikipédia e verificar o que se trata. Então, basicamente, este é o código aberto, problema de
alto desempenho para ser servidor e proxy reverso e blá, blá, blá e cru milhões de recursos. Lá basicamente para nós em jinxes importante porque queremos de alguma forma gerenciar todos os nossos serviços e o que eu estou querendo dizer com isso. Por exemplo, aqui temos o host local 3000 Então vamos supor que estamos em produção aqui. Então minha máquina agora é um servidor de produção, o que significa, sim, tudo bem. Estamos expondo 3000 porta, mas por enquanto, isso será então algum AP como foto AP A. Ter e, em seguida, cólon e 3000 fora de curso. Normalmente, as pessoas não tentarão algo assim no navegador. Para acessar seu site, eles vão escrever algum nome como riel world docker dot com e cardos. Como a Internet está funcionando. Você tem um domínio como o mundo real. Isso poderia vir, por exemplo. E este domínio está registrado em algum registro. O que significa que você atribuiu que suas ligações entre este domínio e seu endereço AP , que significa que basicamente o seu registro sabe em que AP Ele deve transferir a solicitação quando este domínio é acionado, que significa que estamos certos nisso, mas basicamente dentro dele está indo dedo do pé. Meu p como este é onde meu serviço Ranaan um terror i p E aqui é um cólon e 80 e basicamente é sempre um T.
É assim que a Internet está funcionando. Portanto, por padrão, a porta padrão é 80 e não a vemos. Então é por isso que estamos bem em apenas o principal e o pedido está indo aqui. Então este é o nosso A P e depois 18. E a questão é como podemos gerenciar todos esses serviços se nós apenas vamos para o nosso 21 Port 80 e nós mesmo não sabemos. O que devemos fazer com este pedido? Então, basicamente, este é o lugar onde em jinx entram em jogo. Então temos um domínio e em jinxes, algo como proxy entre todos os domínios e todas as solicitações que são comuns em nosso
endereço A P em nosso servidor e, em seguida, em verificações jinx. Ok, esta tese, este domínio ou este é este projeto e, em seguida, ele proxies esta solicitação para o
projeto específico , que significa em jinx, é algo como um gateway entre todas as solicitações em todo o mundo e nosso servidor vendido. É por isso que queremos fazer tudo através e Gen x, o que significa, por exemplo, que
temos algum domínio. Vamos supor riel world docker dot com ou, por exemplo, para local. Vamos usar algo como DOT local. E, em seguida, esta solicitação vai para In jinx, vamos criar em jinx como serviço adicional e, em seguida, em jinx, conflito dentro é configurado dessa maneira. Que ele sabe no serviço de água é deve dar um pedido. Por exemplo, se é algo como barra cheia, então ele deve ser acionado na frente. E, mas se é barra e p I, por exemplo, barra cheia, então sabemos que isso está relacionado com o nosso EP A, que significa antigos pedidos Oeste, que está começando de barra AP. Eu vou ao nosso serviço do FBI, e se eles estão começando com corujas, eles vão cuidar do nosso serviço. Todos os outros pedidos estão indo diretamente para a frente. E então essa é a idéia. Agora vamos implementar o nosso em jinx, para que você veja como ele está funcionando. Então queremos ter ao seu serviço aqui no fundo. Estou a criar-te um serviço. Vamos dar o nome, Jenks. E a imagem aqui será no estábulo Jenks. Pinho do inferno. Então, basicamente, como você pode ver aqui, eu não criei nenhuma pasta. Além disso, Amigo Jinx, vamos criá-lo mais tarde. Mas, por enquanto, não
precisamos do dedo do pé. Oh, aqui Nós só temos uma imagem que significa que agora Docker compor sabe que precisamos registrar o serviço e não Senhor esta imagem. E só para lembrar que você vai pinho aqui significa que esta será a pequena imagem. Isto é o que queremos exactamente. E aqui está o nome do contêiner. Será cabelo escuro do mundo real e aqui em azarado e estamos quase prontos. Nós queremos aqui toe mapear nossos portos como com ele anteriormente. E queremos aqui mapear 80 dedos 80, o que significa 80 leste. O porto onde em jinxes está sendo executado dentro de nosso serviço e 80 é o porto em nossa máquina onde o in jinx do serviço será exposto. O que é importante é que eu acho que talvez em sua máquina algo já está usando a porta 80 . Então eu recomendo que você a lista. Verifique se você tem em jinx em sua máquina rodando porque normalmente no Jinx leva esta porta . E se for, então você precisa apenas pará-lo porque ele entrará em conflito com o nosso in jinx do serviço. Agora queremos criar a configuração para o nosso in jinx. Então, para isso, vou criar aqui na pasta Jenks para ferir sarees. E aqui teremos em Jenks Corn cão prod. E você pode me perguntar por quê? Porque mais tarde criaremos mais um conflito para o nosso desenvolvimento. Então vamos verificar. O que precisamos aqui? Primeiro, tudo, precisamos de uma seção de serviço e aqui vamos ouvir no 80. Então este é o pensamento padrão. E aqui precisamos de um nome de servidor. Basicamente, para nós não importa. Mas vamos aqui,
por exemplo, por exemplo, o mesmo que está escrito dentro do nosso projeto. Então aqui temos Rial World um acampamento. Então, enquanto humano que nosso host Israel mundo agora aqui você não deve esquecer ponto e vírgula e basicamente, isso é Comer o que precisamos, então temos seções de localização. Então, o que seções de alocação aqui no local. Você pode especificar. O que você está fazendo com pedido específico, por exemplo, podemos dizer OK, temos aqui cortar uma torta e, em seguida, caso tese. Estamos fazendo algo com prazer. Tchau. Por agora eu quero começar com apenas slash. Barra significa que todas as solicitações estão indo para dentro. E aqui queremos escrever proxy pars em Dhere. Http. Front end e aqui. 3000. É isto. E agora precisamos conversar sobre isso. Então, o que é passagem de proxy? Como é óbvio a partir do nome é proxy em seu pedido para este pensamento. E basicamente, como você pode ver aqui, este é um sapato TP frente e depois 3000. Então você pode adivinhar que este é o nosso serviço. Esta é esta frente de serviço. E este é o porto 3000. O que é realmente interessante é esta questão tp frente e basicamente fora do curso fora em nossa máquina ou na questão da Internet, frente
tippy e não existe. Mas DACA e docker compõem. Permita-nos através da rede para construir tal o seu outro e para usá-los e este é realmente o futuro
assassino. Do meu ponto de vista fora do Docker compor porque por agora podemos usar algumas coisas que existem em Lee dentro de nossos contêineres e não fora. E estamos nos comunicando entre serviços através da rede, e isso significa que tudo é superescopo do próprio servidor. Agora precisamos usar esse arquivo e a questão é, quão fácil com volumes. Então aqui podemos escrever que precisamos registrar volumes também em linha. Assim como o Dash. E aqui estamos nós aqui em Jinx Slash Motores conflituosos. E este arquivo que queremos colocar dentro deste serviço em DTC em Jenks e aqui configuração ponto de barra engenhoso con. Então, basicamente, queremos substituir este arquivo no Jinx Khan com nossos motores de configuração desligados. Outra coisa que precisamos fazer aqui é escrever depende porque, como você pode ver aqui com estrada dentro em localização jinx, caminho
proxy e se isso detém não estará disponível, por exemplo, ele está para baixo. Então ele vai quebrar. Nós não queremos entrar em Drake, então aqui vamos secá-lo à frente, e o que significa que precisamos começar frente e primeiro, a fim de ligar nossos motores, então isso deve ser suficiente para nós. Então vamos começar com o nosso médico compor. E, em primeiro lugar, queremos testar nossa produção padrão. Então isso é construir e vamos construí-lo agora. Então aqui, minha composição de docker está iniciada. Mas como você pode ver, é difícil de ver. Ouçam alguma coisa porque temos demasiadas fechaduras. Então é por isso que eu escrevi Docket Blog e, em seguida, o nome fora do nosso serviço de jinx como Real World Doctor em Jennings e pressione Enter. E aqui você vê logs especificamente em relação ao nosso serviço é que você pode ver aqui temos um nome de servidor de diretiva desconhecido para um erro. Então eu não escrevi corretamente aqui entre o nome sete e o nome. Não devemos colocar aqui uma coluna, por isso deve ser escrita assim. Vamos reiniciá-lo novamente e verificar se está funcionando. E mais uma coisa que eu esqueci de mudar aqui, senhor, o nome deveria estar lá realmente apresentador. Por isso, não deve ser apenas o mundo real DACA, mas fora do curso ponto com Se saltarmos agora para o nosso navegador como você pode cereal foram médico que acalmar fora curso. Este não é o nosso domínio e não o compramos. Então, como contestamos com este domínio? Nosso servidor. Então, basicamente aqui estavam dizendo o nome do servidor e em nosso arquivo de hosts UTC, podemos especificar nosso nome, então ele será aprox em nosso host local. Então, basicamente, se você não sabe que idiotas, este é um arquivo especial. Você pode ler sobre isso na Wikipédia, por exemplo, este é o nome do host. Então nós rolamos suas portas e hosts neste caso é você pode ver aqui você pode escrever Este é o host
local e à direita, o nome que precisamos. Então, basicamente, queremos que este dedo do pé nome seja resolvido em nosso host local, que significa que podemos simplesmente aqui a linha como este fora do curso resultou sapato TPM então eu só poderia ser colado. E então este domínio que escrevemos aqui não procurará na Internet este domínio onde
está registrado. Mas antes de tudo, ele vai tentar resolvê-lo na máquina local, o que significa que nós apenas tipo de hacks para ser resolvido em nossa máquina local. E isso é realmente bom para o desenvolvimento localmente quando você quer algum domínio toe test, por exemplo, mundo
real DACA dot lock Oh, você pode apenas escrever em hosts este arquivo e, em seguida, usou seu domínio normalmente em e não local anfitrião. E basicamente, como você pode ver, depois de adicionar esta linha ao host local magicamente foram saltar para o mundo real DACA calma e estamos vendo nossa frente e serviço. Então vamos falar mais uma vez, como ele está funcionando. Então, basicamente, quando montamos essa linha dentro do nosso host UTC, ou talvez se você estiver no Windows, então você pode apenas google para janelas de arquivos hosts. E se eu me lembro corretamente, esta é a pasta insistente em Você pode verificar em algum sistema de links do que drivers. Você sabe, ela e há esse arquivo de host. Então basicamente lá, você precisa adicionar esta linha que você deseja resolver este domínio dentro do local, e então este domínio está indo fora de curso para a porta 80. Mas não vemos que este seja o ponto mais importante. E agora ouço se vou fechar os anfitriões e abrir o nosso em Jennings. Então aqui estamos expondo. É o nosso in jinx para a porta 80, o que significa que quando estamos aqui, o nosso domínio ou o principal 80 . Então vamos entrar em Jinx dentro de Dhaka, dentro deste serviço. E então vamos para o nosso arquivo em conflito jinx. E aqui estamos nós agora. Ok, este é o nosso vários nomes. E quando a localização é
cortada, precisamos passar por proxy na frente TP e três solvente. E este é o nosso serviço, que é iniciado. E o mais importante é que agora, aqui não precisamos expor o esporte. Por que é isso? Porque precisávamos deste testamento para o nosso anfitrião, para a nossa máquina local. O que você vê aqui na configuração, esta não é uma máquina local. Esta é uma rede escura especial onde todos os serviços podem se comunicar juntos, o que significa que não precisamos expor nenhuma porta. Dhaka tem excesso para essas coisas. É por isso que quando nós apenas parou e chuvas disse que eu poderia compor novamente, ele vai funcionar completamente como anteriormente, porque este é o proxy Pasto o serviço. Não tem nada a ver com o nosso anfitrião. Sim, claro. Podemos ter os esportes para expô-lo e usá-lo lá fora. Mas, na verdade, não faz sentido. Então estamos aqui em produção. Então estamos testando o molde de produção e este é o nosso domínio. E como você pode ver a nossa frente e está trabalhando eo mesmo que vamos fazer para o local. Então nós apenas escrevemos outro dedo do pé de domínio. Nossos hosts arquivo, por exemplo, que local e, em seguida, aqui. Também não precisamos expor nenhuma porta. Mas, claro, aqui teremos outros comandos, mas ele vai pular o dedo do pé na mesma frente e xarope. Então aqui eu recomecei, meu médico compôs. E como você pode ver, funcionou como antes. Então, basicamente, como você pode ver neste vídeo com a torre superior em Jenks, o que é bom, não está dentro da nossa máquina. Está dentro de Dhaka. Este é o serviço adicional, que é apenas ligá-lo toe 80 porta em nossa máquina e, em seguida, dentro. Ele gerencia todos os serviços por sua saúde. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu vou respondê-los com certeza.
19. Solicitações de api de proxy.: na mídia anterior. Nós configuramos nosso serviço no jink para que agora possamos renderizar nossa frente e no
domínio ponto com do mundo real . Neste vídeo, eu quero falar sobre um plies e como queremos prosseguir com os pedidos. Então, basicamente, que problema temos? Então vamos supor que não fornecemos tortas públicas. Então criamos um site e não um projeto onde as pessoas podem acessar nossa torta de fora e usá-lo, que significa que nosso FBI é apenas para fins internos. Que abordagens podemos adoptar para implementar o E P I e o que pretendemos exactamente alcançar? Então, basicamente, vamos dizer que estamos bem na frente. E então estamos aqui dentro do nosso aplicativo criar destruído e aqui com alguma função de aplicativo,
por exemplo, por exemplo, o que for. E daqui, em algum momento, queremos obter alguns dados e estamos bem em,
como, como, buscar ou acessar ou qualquer biblioteca que você preferir buscar dados e aqui deve haver algum mural que irá obter os dados do nosso FBI. Então aqui está um mural do nosso e chi e aqui, por exemplo, barra poste que é um poste de rebote. Então temos um pouco de frio de volta onde temos este post e aqui estamos fazendo algo com eles como set State, por exemplo. E aqui estão os postos. Basicamente, esta é a primeira abordagem de que precisamos. Então, da nossa frente e serviço, queremos nos comunicar via http com nossos pacers A. E então precisamos exatamente do mesmo. Por exemplo, em nosso serviço de torta A. Basicamente, nossos oito por serviço não precisam fazer nada com fronton, o que significa que nosso EPA está lá. Ele se comunica com banco de dados, mas no ponto em que queremos verificar os dados atuais do usuário, precisamos obter dados do serviço de autenticação. Aqui estou eu, dentro do nosso serviço do FBI. E digamos que ao inicializar fora do nosso serviço, queremos buscar algo da nossa resposta da autenticação, que significa aqui algum euro da nossa casa. O FBI precisa ser apoiado. Também fora do curso. Não é dito estado aqui, mas estamos fazendo algo como se estivéssemos voltando. Por exemplo, usuário
atual e você pode perguntar por que estamos chegando aqui. Usuário atual, Digamos que podemos excesso,Por
exemplo, Por
exemplo, alguns posou em Lee quando somos o criador fora deste post, que significa que precisamos verificar se o usuário atual quando estamos bloqueados com o usuário atual é o mesmo, como o autor fora deste post. Então isso significa que nosso FBI precisa dar algum excesso para nosso império. E também aconteceu que a nossa frente e quer buscar o usuário atual diretamente da autenticação E pay, que significa que é como frente e não precisa ser usado por nada, mas ele. Eu é necessário para ser usado pela frente e e nossa autenticação é necessária para ser usado pela frente e e e chi. Portanto, é exatamente isso que queremos alcançar. E neste vídeo, vamos tentar fazer algo assim antes de tudo, vamos criar nosso teste uma torta onde podemos pescar alguns dados. Vamos começar com o nosso serviço de autenticação. Então aqui temos índice e criamos aqui nossa rota com teste de barra onde enviamos alguns textos apenas para saber que o nosso serviço está funcionando corretamente. Agora eu quero copiar isso e aqui queremos cortar usuário atual. Então, basicamente, vou manter isso simples. Eu não vou implementar toda a lógica sobre conversas de frango de usuários atuais e banco de dados. Eu simplesmente digo ok, Eu tenho obter solicitação de usuário atual e pode ser, por exemplo, válido ou inválido. Então, basicamente, podemos simplesmente dizer aqui, prender Jason e retornar aqui um objeto fora do usuário atual. Digamos que ele tem algum um d 123 e nós temos algum e-mail, e ele estará cheio no gmail dot com. Então, basicamente, temos apenas dados baseados fora do usuário atual que nós apenas enviar seu. Agora vamos verificar se está funcionando. Então, para estes, basicamente, deve
funcionar fora da caixa se começarmos o desenvolvimento, Sarah ou podemos fazê-lo, por exemplo, com compilação. Mas então queremos esperar até que a compilação completa esteja pronta. Então vamos verificar no navegador. Aqui temos cavalo local 3002 cortar usuário atual e estamos recebendo nosso pedido império de volta . Mas claro, isso não é o que precisamos. Do que precisamos? Então nós temos um domínio riel mundo, ou isso poderia vir de um local? Teremos dot loco, mas na verdade não importa. O ponto é que queremos exceder este seu l, por exemplo, de vamos começar,
por exemplo, por exemplo, de com o serviço EPA. Então, basicamente, estamos aqui e ele alguma vez quis fazer um pedido para isso? Seu l e, claro, anfitrião
local 3002 não está correto, porque aqui não sabemos nada sobre anfitrião local Uma toalha aqui é que estamos dentro de Dhaka , que significa que precisamos nos comunicar com outros serviços através do Rede médica. E aqui podemos fazê-lo da mesma maneira. Como com fez em Docker compor quando montamos aqui, este mangá seu l Como você pode ver aqui, usamos o nome fora do nosso serviço da mesma forma que podemos fazê-lo quando buscamos dados de um serviço para outro. Mas para torná-lo flexível, eu quero configurar tudo através de variáveis de ambiente. Então aqui estou eu em uma torta e eu quero nova variável de ambiente, que será chamado,
por exemplo, por exemplo, corujas aplicar Ural, e nós tomamos isso de ambiente de processo, corujas, FBI, seu l, o que significa que nosso serviço ainda não sabe nada sobre configurações. E isso é claro, bom. Então vamos criar essa propriedade agora dentro de nossa composição docker. Então aqui estou eu no mau serviço, e aqui temos variáveis de ambiente e podemos dizer aqui que horas um pagamento seu l é igual e ouvir o que queremos. Então aqui será http do que o nosso. E o porto e nosso esporte é 3002. E você pode pensar que isso está relacionado com os esportes, mas não está. E vamos remover os esportes daqui porque estamos falando de placas fora da
rede Dhaka , que significa que este é o porto onde o aplicativo está rodando dentro de Dhaka e o esporte é 3002. O que significa que é por isso que aqui também é 3002. E isso você pode ver que estamos usando aqui, não hospedeiro local para algo. Mas este anfitriões especiais de Dhaka e este é o nome do serviço fora do serviço de autenticação. E na verdade, queremos aqui aus ap a Ural. Então não faz sentido aqui apenas escrever base. Ural, queremos aqui cortar AP I e então aqui vamos voltar para o FBI e para a fonte. E aqui quando o serviço começou, eu quero Cônsul, registrar nossas corujas uma torta, Ural,
que será a casa de uma torta Hural . Mas agora precisamos de um dedo importado aqui no topo. Então são horas de torta de Kama, Ural. Então, como você pode ver agora ele vem de variáveis de ambiente e agora podemos usá-lo aqui. Então vamos reiniciar nossa composição de encaixe e ver se funciona, como você pode ver aqui agora temos no mundo real ok, por uma linha. Todos os três pares seu URL é http aus 3002 e um tempo que significa que esta variável de ambiente está lá e agora podemos buscar dados. E para fazer isso precisamos instalar um pacote adicional dentro do nosso FBI. Isso é chamado de excesso. Então, basicamente, se você não sabe o que este pacote está fazendo, é realmente bom pacote para frente e e acenou, que significa para um JavaScript inclinado e conhecido GS onde você pode simplesmente buscar dados em todos os lugares. Então você apenas instalá-lo e então você escreve exalações obter,
em seguida, algum euro, e então você recebe uma resposta. E resposta interna você tem dados de ponto. Você pode fazer captura e som. Então esta é uma biblioteca muito bonita. Estou usando em todos os lugares. Então ele quer instalá-lo com NPM, instalar excesso dentro da nossa pasta do FBI. Agora nós instalamos. E aqui vamos ver como podemos fazer um pedido do nosso macaco I para o FBI do Sul. Então, para estes vou criar no teu gato. E será,
por exemplo, por exemplo, teste com o usuário atual. O que significa que a idéia é que isso é uma torta e ponto onde queremos obter
dados adicionais fora. Usuário atual. Então isso é apenas para fins de teste, é
claro. Mas mostrará como podemos exceder nosso serviço com autenticação dentro de nosso império. Então, basicamente aqui nós pedimos resposta e queremos fazer uma solicitação de busca. Então, para isso, precisamos aqui para importar excesso e isso é necessário excesso. E agora podemos fazer nossos pedidos. Então aqui estamos fazendo excesso chegar e nós temos aqui excesso horas do dedo do pé, um poder seu l. e como você se lembra este é o seu l Então aqui nós descrevemos. Esta é uma barra a torta, o que significa que se quisermos exceder nosso usuário atual, precisamos do Ural para conter o pagamento da barra. Então vamos saltar no índice de indicação sidles Então aqui nós apenas criamos barra usuário atual, mas deve ser barra ap I barra usuário atual e, em seguida, retornamos nosso usuário. Então isso é o que queremos buscar aqui para que seja pedido com um corte uma torta. E agora podemos entrar nos anos 80 com parte atual Hughes. E como você pode ver na recomendação aqui,
nós pegamos e pegamos. E como você pode ver na recomendação aqui, Nós vamos apenas, então aqui e aqui nós vamos obter uma resposta. Então resposta é um objeto com um monte de propriedades, mas para nós é interessante. Apenas resposta dos dados dos pés. Este é exatamente o lugar onde os dados de resposta estão lidando. Então aqui queremos Rez. O Jason. Então queremos mostrar algo na tela. E digamos que estamos dizendo aqui que isso é algo relacionado ao teste com o
usuário atual . Então vamos apenas retornar isso para true como variável. E nós queremos aqui para mostrar os dados do usuário atual do nosso e aqui, digamos que a resposta não dados. Então, mais uma vez, construímos dentro de nosso um pinheiro sua seca onde buscamos primeiro nosso usuário atual de nossa rota de autenticação para fora serviço de Indicação. E então nós apenas usamos esses dados de resposta para mostrar algo para o usuário quando buscamos este teste era uso atual. Hum, então parece bem. Vamos reiniciar o nosso docker compor e ver se ele está funcionando Quando eles olham no navegador Aqui é cavalo
local 3001 teste foi o usuário atual eu posso obter qualquer coisa porque eu esqueço aqui para colocar barra Então vamos tentar mais uma vez. Agora, como você pode ver, ele está funcionando como planejado Então aqui estamos o acesso em nossa outra indicação, mas internamente foram buscar e usuário atual do nosso serviço fora indicação de espera e irá retornar alguns dados do usuário
atual aqui, o que significa que esta é realmente boa abordagem fora trabalhar entre serviços. Então, como você pode ver, não
precisamos fazer nada que só precisamos em nossa docker compor yah mo para especificar corretamente ,
por exemplo, por exemplo, uma torta Ural. E então nós apenas construímos uma torta entre serviços e podemos buscar dados entre eles. que significa que, por exemplo, podemos fazer como, mais
10 olhos AP e enfraquecer o excesso de cada FBI internamente e isso é realmente segurança fora da caixa porque normalmente quando você apenas cria vários projetos e, por exemplo, Você os coloca em um. Senhor, você está se comunicando entre urais públicos como, por exemplo. Digamos que você está fazendo o pedido internamente, mas também com o endereço P fora do servidor e aqui com uma rede DACA especial. Falaremos sobre isso na próxima palestra. Mas basicamente a idéia é que nada lá fora pode obter dados daqui. Como a partir desta autenticação. Como não estamos expondo nenhuma porta para fora, que significa que Onley, nossos serviços internos de encaixe podem buscar dados de um em outro. Então é por isso que eu gosto desta abordagem docker compor porque é super seguro fora da caixa. Como você pode ver neste vídeo, obtivemos com sucesso dados de outro serviço. Então é assim que é feito realmente rápido e fácil. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
20. Rede de docker: neste vídeo. Eu quero falar sobre redes DACA, mas outono festivo. Vamos ver como podemos usar o FBI dentro do nosso outro. Indicação eBay. Então, basicamente, temos exatamente a mesma abordagem, para que possamos copiar de uma torta. Estes três pares, Ural e aqui dentro do nosso serviço de corujas, usam inumeráveis FBI, Ural. E aqui não temos horas, mas temos uma torta e portas 3001 como foi definido aqui. E apenas mais uma vez, nós não usamos mais o esporte, porque aqui o esporte estava em Lee para saltar o dedo do pé deste host diretamente no navegador e para verificá-lo nossa máquina local. Agora, aqui dentro de nossas horas eram incomuns nos esportes da última vez apenas para testar se tudo está funcionando principalmente a partir do navegador dentro de nossa máquina local. Então, basicamente, aqui temos o seu L. E agora precisamos saltar do avesso e instalar o acesso como fizemos anteriormente para um tubo. Então, basicamente, o frio será exatamente o mesmo. Então vamos aqui dentro do chi e copiar colar, por exemplo, esta solicitação, basicamente primeiro de queda em nosso FBI, precisamos criar alguns que você solicitar onde podemos obter alguns dados para nossa autenticação serviço. Basicamente, pode ser que, por exemplo, com a solicitação do usuário atual precisamos enviar alguns dados Adicionalmente do nosso FBI, por exemplo. Alguns eu não sei cursos ou os artigos fora do usuário e assim por diante. Então vamos criar aqui. Mais um ab obter pedido, e aqui vai ser um teste de dados pi, e vamos simplesmente retornar aqui nossos dados para o nosso um pinheiro. Então descanse, Jason. E aqui,
digamos, saborosos dados de torta. Eu não sei. Verdadeiro. E este será o pedido que iremos buscar dentro do nosso serviço de autenticação. Então vamos agora para o nosso serviço sindical. Muito primeiro precisa copiar este ab GATT porque queremos criar a mesma coisa fora dentro corujas. Então aqui no índice, como podemos ver, temos vários AB começa já para teste para obter um usuário atual. E aqui será mais um aqui será teste com o usuário atual. Vamos renomeá-lo teste com dados de pizza. E como podem ver aqui, temos todo o poder. Ural, não
temos aqui. Mas aqui precisamos de um. Você é um rebelde, e será um par. Seu l e nós pegamos do ambiente de processo uma torta. Ural. Agora vamos importar esta propriedade aqui. Por isso, é um poder seu l e usá-lo para buscar dados. Então é o seu L. E vamos verificar mais uma vez o que temos aqui. Então ele waas barra e teste com não com o usuário atual testá-lo I dados primeiro. Horrível. Esqueci o Slash aqui mais uma vez. E em segundo lugar, queremos perfeito sentar aqui com a torta porque estamos prefixados no nosso exterior uma torta, Ural no ambiente wearables também com barra e p I Então aqui é barra e pi slash testado por dados. E aqui, como você pode ver, estamos recebendo este é o nosso serviço de autenticação. Estamos recebendo dados de um jogador seu l e aqui é testar um dados pi, e nós apenas temos resposta. Então vamos nomeá-lo testar um dado pi. Verdadeiro. E aqui estão alguns dados da nossa resposta. Então, basicamente, como você pode ver aqui, nós testamos dados parry. Então vamos apenas ter uma propriedade testar um datum pie, Mas vamos correr data de resposta pensamento dados ponto testy p i dados. Então, basicamente, responda aos dados. Este é este objeto e nós acabamos de ler a partir de seus dados testados e devolvê-lo aqui. Agora vamos construir mais uma vez nossa docker compor e verificar se está funcionando. Então, quando eu pulei para o navegador, eu vejo a era em que o acesso não está definido. Aqui está o host local 3000 ferramentas. Então este é o nosso servidor de autenticação e este é o nosso pedido. Eu só esqueço aqui o acesso à importação, então o acesso é exigir excesso. Agora precisamos começar mais uma vez, e espero que funcione. Como você pode ver. Agora temos propriedade, eu dados verdadeiros. E esta verdade é basicamente uma variável do nosso pedido adicional ao FBI. Então esta é a nossa autenticação. Obter pedido. Então o poder irritante era dados. Você pode vê-lo aqui, e nós estamos pegando com excesso. Alguns dados do nosso EPA,
Ural, Ural, e nós criamos este EPA Ural fora do ambiente onde os rebeldes e, em seguida, retornarão aqui . Dados de resposta testados por dados. Então, como você pode ver, podemos simplesmente configurar tudo para que nossos serviços possam trabalhar entre eles. Agora, a questão de como as redes estão funcionando em Dhaka, então primeiro de tudo, o que eu posso dizer para vocês é que quando nós apenas aqui alguns serviços docker compõem auto magicamente criar uma rede para nós, o que significa que, por padrão, não há rede lá e uma docker compor alto. É isso e nós apenas obtemos por padrão que todos os nossos serviços podem se comunicar. E eles acham que isso é muito bom porque você pode entrar em Dhaka. ambiente e o Docker compõem a maioria das vezes porque ele funciona para você e você pode aprender mais tarde. Como assim Agora a hora está chegando e precisamos aprender como funciona. Então, basicamente, rede é um novo termo em relação ao ambiente docker que ainda não sabemos, então conhecemos imagens de contêineres. Agora sabemos também volumes e novo termo é rede. O que isso significa? Rede? Eu acho que você pegou pelo nome. Este é o documento e rede dentro do qual nossos serviços médicos podem se comunicar e você pode configurar esta rede de maneiras diferentes e é realmente eficiente. E esta é a boa ferramenta que eu realmente gosto. Então, basicamente, primeiro queremos saber como podemos verificar quais redes temos. Então aqui estamos nós na Rede Dhaka e estamos recebendo uma boa ajuda de Dhaka. Então, Doutor, rede e Comando aqui como podemos gerenciar redes para que possamos nos conectar para contê-lo à rede e você pode obter o ponto. Então, somos uma rede excelente, mais rápida e, em seguida, conectamos alguns serviços ou contêineres a esta rede também pode desconectar, inspecionar e ver o mínimo. Então vamos verificar a lista. Como você pode ver aqui temos várias redes e na verdade não diz nada do nome aqui. Este é bastante compreensível. Os outros não são tão basicamente riel mundo DACA padrão é uma rede que foi magicamente criado para nós por docker compor. E como você pode ver, motorista aqui é uma violação e nós não escrevemos nada sobre redes. Mas todos os nossos serviços estão nesta rede e é por isso que podemos nos comunicar entre serviços porque eles estão na mesma rede. A branca de risco. Muita documentação sobre redes em arquivo composto de Dhaka e aqui para nós é interessante como podemos criar nossa própria rede e como podemos configurá-los. Então, basicamente, o tipo de rede padrão é bridge e você pode verificar aqui, por exemplo bridge e você pode ver o que é? Quase todos os meus projetos que estou fazendo com uma única rede para todos os meus contêineres e eles
criaram comer por mãos, porque neste caso é mais fácil entender o que é e quais os serviços estão na rede. Também que foram motorista é por mim, por padrão, no momento de violação. Então aqui, em vez do padrão de Israel World Doctor, podemos descrever nossa própria rede. Então, basicamente, aqui na parte inferior, onde desejo tem volumes, podemos adicionar uma nova seção e será redes. E aqui em redes, podemos montar que temos rede e vamos prefixá-la com o mundo real Doctor porque
será claro. Então temos riel mundo escuro rede e aqui podemos especificar que o motorista é ponte. É isto. Então, basicamente, é exatamente o mesmo. O que fez por nós por padrão Docker compor e você pode perguntar, Por que precisamos especificá-lo por nós mesmos, realmente com amanheceu, mas para o caso em que entendemos como ele está funcionando e podemos então simplesmente dizer quais serviços devem estar em esta rede eo que não deve. Podemos fornecer agora esta rede para os nossos serviços. Agora, a questão é como especificar o que as redes fazem. O chef, por exemplo, em serviço jinx. Para isso, temos redes de propriedade e dentro nós apenas tentamos o nome. No nosso caso, será Riel World Docker Network. E agora vamos lidar com estes e adicionar cada um dos nossos serviços porque basicamente não
temos outras redes e não faz sentido para nós criar várias redes. No entanto, em projetos mais complexos, podemos fazê-lo. Mas nós realmente não precisamos dele aqui. Então, como você pode ver, eu adicionei redes com nossa rede que foram criadas em todos os nossos serviços. E agora explicitamente Assane, que rede temos aqui? Então esta é a rede padrão, que é ponte. E agora, quando começarmos aqui. Então perdemos a composição do estivador. E como você pode ver, há uma linha criado mundo ferroviário rede ou rede cam com ponte driver. Agora, quando escrevemos a Doctor Network um pouco menos aqui, você pode ver o nome e na verdade o nome é bastante ruim porque, como você pode ver, temos o nome duas vezes aqui é o nome do rial fora da rede. E aqui com o perfeito off EP, Podemos deixá-lo assim porque basicamente o que vemos no arquivo jahmal é apenas este nome. E para mim, é muito mais compreensível do que a rede de nomes simples ou a rede padrão. E basicamente esse nome aqui nós realmente não vemos. Mas como você pode ver, é
assim que podemos especificar redes para nossos serviços. Então aqui tudo começou. E quando é que o Senhor foi a nossa candidatura ou a nossa tarte? Tudo está funcionando como estava antes. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu responderei com certeza.
21. Procuração de frontends: No vídeo anterior, falamos sobre redes e fizemos solicitações do nosso serviço sul para o nosso serviço APIs. Neste vídeo, eu quero falar sobre frente e serviço e como podemos fazer solicitações de frente e serviço para o nosso A P I ou nosso serviço de casa. Você pode pensar que vai funcionar exatamente da mesma maneira, como nosso império ou Sul. E a resposta é não. E este é exatamente o problema que eles vêem. E há muitas perguntas sobre essa abordagem na Internet. Então, qual é o problema? As pessoas estão pensando isso quando tentaram o código assim. Então saltamos para a frente e aqui em algum lugar, estamos bem em busca, como fizemos, por exemplo, dentro do FBI. E ali, bem aqui, um cara, sua casa ou do FBI. Ural era excesso. Vai funcionar. Mas a questão é que não vai. A questão é por quê? Porque antes nós costumávamos montar nossos aplicativos acenados, ele foi escrito com script cálice também, claro, mas ele estava de volta e era conhecido gs aqui, uma torta e sul nas costas e aplicações. Tudo é fácil, então você tem seus serviços internos back-end. Você não tem quaisquer restrições fora do navegador, porque isso é apenas para serviços e eles podem se comunicar com buscar ou com o que você quer e deixou cair nenhuma restrição com a frente . E nós temos uma restrição porque estamos no navegador e em segundo lugar,
Então, quando estamos falando sobre, por exemplo, Israel mundo como uma calma. Este é o nosso anfitrião. Então esta é a máquina fora do usuário. Então isso não está relacionado em nenhum caso, para o nosso docker compose ou DACA, ele só vai para a porta 80 se for o serviço. Se estamos falando de cliente, ele só vem para este ano l e para ele nosso site está funcionando. Então aqui está a parte complicada. Então aqui, no navegador, podemos ver em feridas nosso javascript que foi construído aqui jazz principal. O que significa que este é o javascript que acabei de abrir. E aqui JavaScript no navegador não sabe nada sobre em Dhaka sobre uma
composição docker ou nossa rede de médicos, que significa tudo que este javascript Nell é apenas o nosso anfitrião. Então, a única coisa que este código pode fazer é fazer buscar para algum torta publicamente na Internet ou para fazer solicitação para este host este é ele. Agora a questão de como vamos construir a nossa torta para que ele vai funcionar. Basicamente, como eu já disse, primeira abordagem é apenas aqui, como eu escrevi buscar para escrever seu público uma torta. Então, basicamente, estamos expondo nossa torta A assim e aqui será apenas algum endereço AP, por exemplo. E então estamos bem aqui. Ok, estamos pegando. E aqui está algum endereço e p e, em seguida, alguma porta como, por exemplo, 3001. E aqui o pedido de uma torta e pesquisas, por exemplo. Vai funcionar, mas estamos no navegador e irmão tem suas limitações. Por exemplo, não
podemos fazer solicitações apenas para qualquer site imediatamente. E basicamente, as limitações são que podemos fazer as solicitações sem problemas em Lee no mesmo domínio
ou subdomínio , que significa que não podemos a partir desses domínios simplesmente obter solicitações e obter dados do CPI I I endereço porque eles não são os mesmos. Então nós temos aqui através de políticas de origem. Você pode escrever curso dentro do navegador, e aqui verificar o que é cruz origem pedido significa e como ele funciona no todo. Mas basicamente, se eu vou dizer que segurado. Isso é apenas coisa super problemática, e queremos evitar usar curso em qualquer caso, porque basicamente, você pode configurar seu serviço como se fosse uma pastelaria, que você permitirá algumas solicitações de serviços ou hosts porque nós simplesmente não queremos torná-lo completamente público. Mas isso é estridente e requer tempo, e você vai ter muita caixa. Eu vi isso em muitos projetos, e não estava relacionado com um pedágio escuro. Mas estou tentando evitar o curso. Se possível, ele funcionará principalmente em todos os navegadores. A questão é, que alternativas temos e os anos alternativos N jinx. Então, basicamente, aqui queremos saltar em nosso navegador. Então, quando vamos para este ano, L em Jink deve entender que queremos mostrar frente e serviço. E então, quando estamos aqui, uma pose de torta no ginásio deve entender que queremos obter nossos posts de uma torta como fizemos aqui. Mas não usaremos host local e porta exposta. Ele sempre vai passar em jinx, que significa que este é sempre Porto 80 o que significa que ele é tratado por em Jinx Light Road aqui em Dhaka compels. Então aqui estamos tendo Jinx, e temos exposto 80 porto. Então, basicamente, esta máquina, este é o nosso servidor. Queremos lidar com isso assim. Agora, dentro do nosso projeto aqui, no aplicativo fonte, podemos usar buscar. Mas neste caso, não para algum outro host, mas para o mesmo host onde temos a nossa aplicação, como deveria mundo Imperial. Ou poderia vir, por exemplo, ou para o desenvolvimento que o FBI local poste e vai funcionar sem problemas fora da caixa só porque este é o mesmo anfitrião? E esta é a abordagem que eu gosto e que eu faço em todos os meus projetos. Então a questão é, o que devemos fazer para configurar no jinx para o redirecionamento certo. Então, basicamente, queremos saltar para a configuração de nossos motores aqui. Esta é a configuração de produção, e queremos confundir suas alocações. Então eu vou apenas localização baseada em cookies aqui e todos os pedidos do FBI que atrás em Slash FBI . Queremos o primeiro péssimo dedo do nosso FBI com a porta 3001 e depois queremos reescrevê-los. Basicamente, se você apenas escrever assim,
em seguida, o seu pedido de um post de pizza virá apenas um como barras postagens dentro do nosso pedido dentro do nosso serviço. E queremos tê-lo sem ele. Eu tão basicamente como aqui em nosso pagamento, por exemplo, feridas eram velhos, todos os pedidos com resposta barra perfeita. Ele não faz. Você pode, claro, fazê-lo. Mas para mim, é olhar um pouco verbais e basicamente para este serviço específico. Quando estamos olhando para ele em, isolar, não
faz nenhum sentido para traficantes todo o seu também era uma torta. Então é por isso que eu quero evitar isso. Perfeito. Então aqui eu estou apenas escrevendo como barra testada por dados e, em seguida, no nível off em jinx, nós estamos bem no Ural. A questão é como podemos fornecer um Ural. Então parece assim. Temos uma expressão específica, específica à direita e, em seguida, irregular. Vou escrevê-lo agora e depois descrever o que ele faz se você não sabe como
as expressões regulares funcionam. Então basicamente é parecido com isso, e dividir significa que aqui registrar nossa expressão regular. E esta estrela símbolo significa o início do nosso Ural, o que significa aqui, elevar o nosso l e Slash ap. Eu deveria estar no início, o que significa que esta construção significa que isto é uma torta. E agora aqui temos esta rodada quebrar sua e ponto e estrela. Isso significa que precisamos deste grupo, que significa que o que neste grupo é este é o resultado, que significa que não nos importamos com uma torta e isso vai entrar em resultado. E aqui temos este dólar um dedo salvar comer propriedade do dedo do pé. Basicamente, você não deve entendê-lo completamente. Você pode simplesmente copiar, comer e usar dependido da Internet se você apenas ir como reescrever o meu l toe outro euro ou algo assim Ou você pode apenas ler um pouco sobre expressões regulares. Mas basicamente para nós é interessante que o Ural quando nós aqui cortar e pi barra posts irá para o nosso serviço como barras postes. É isto. Agora eu também quero a luxação corporativa e nomear tudo cortar uma torta e aqui eu
também quero proxy caminho. Mas aqui será o pobre 3003, eu acho. Mas vamos verificar gravata tão pesada com o esporte 3001 e o nosso 3002. Então deveria ser também Agora ele iria funcionar fora da caixa. Então vamos verificar para estes que precisamos em nossa frente e fazer um pedido. Então, vamos aderir a um botão. Por exemplo, After Header, temos aqui botão e aqui no clique. Então temos no clique Handler e aqui vai nossa função, Por
exemplo, fazer um pedido P I. Agora precisamos criar esta função para que aqui será const. Pode manter um pedido. E aqui dentro, primeiro lugar, vamos apenas o registro do cônsul se estiver funcionando. E também eu quero instalar aqui na frente e excesso como eu fiz anteriormente. Então npm instalar excesso porque também queremos fazer solicitações com excesso. Então você faz uma instalação que já podemos importar excelência do excesso. E agora, para fazer pedidos, precisamos obter variáveis de ambiente. Mas o problema é que nós não podemos simplesmente dá-los aqui como fizemos para nossos
aplicativos chamados , porque basicamente, nós podemos chegar aqui dentro da frente e parte. Mas eles não vão apenas entrar em nossa frente JavaScript e construir, que significa que precisamos de alguma forma magicamente dar-lhes através de nosso serviço de aplicativo destruído que nós compilamos toe passá-los de acenado para frente, e nós podemos fazer muito fácil abordagem. Podemos simplesmente fazer um pedido para apenas cortar e, em seguida, uma torta e, por exemplo, Postar porque neste caso, navegador por padrão usará Ural atual. Então nós apenas não escrever host e começar com slash. Então vamos fazer isso agora aqui. Mas a única coisa que eu quero verificar Primeiro de tudo, nós não precisamos de colchetes redondos e precisamos aqui de algum texto como Fazer uma solicitação Pie e, em seguida aqui no topo, queremos no clique para fazer este pedido com excesso. E como eles disseram, nós apenas colocar aqui barra e, em seguida, o pedido. Então vamos verificar o que queremos buscar. Vamos supor que queremos pegar algo da nossa torta. Então aqui temos, por exemplo, obter quem é o usuário atual, que é bom para testar porque neste caso vamos verificar se podemos de frente e fazer um pedido o r a p I onde vamos obter um pedido para a nossa autenticação e, em seguida, obter dados de volta na frente. E então aqui vamos escrever como thes E como
dissemos, precisamos prefixá-lo com barra repay em outro caso, nosso in jinx não vai entender. Sobre o que é? Então, aqui está uma solicitação sua uma torta,
em seguida, teste com o usuário atual e isso é obter solicitação. Aqui está a nossa resposta. E vamos simplesmente cônsul registrar o que é a resposta interna? Então guarde isso. Como você vê aqui, não
temos nenhum ambiente favorito e nenhum host, então vamos construí-lo novamente e verificar se ele está funcionando. Como você pode ver, eu não tenho nenhum erro. E agora, sempre que Senhor a página no navegador, você pode ver aqui na parte inferior do seu fundo fazer um pedido de torta. Agora clicamos neste botão e podemos ver na rede que estamos fazendo a solicitação para os buracos
atuais barra ap i barra teste com o usuário atual e aqui iria obter a nossa resposta. Então aqui a resposta aqui as informações atuais do usuário do nosso
serviço de autenticação A b I E agora a partir de dados de resposta, podemos acessar essas propriedades e renderizar algo em nosso cliente. Então vamos verificar mais uma vez como ele está funcionando. Se estamos bem aqui cortar ovelhas eu cortar por exemplo teste com os dados pi. Claro, ele não funciona porque este não é o correto seu l do nosso EP eu ouço é teste com usuário
atual, por exemplo. Como podem ver, podemos ir diretamente ao nosso serviço do FBI, mas apenas através do nosso domínio. Porque agora podemos remover com sucesso do nosso docker compor thes esportes, por exemplo, aqui em um par já foram removidos eles. Então não podemos apenas acessar ele torta em seu próprio Onley através do nosso anfitrião e a mesma coisa
que podemos fazer para fora porque agora estamos aderindo eles em Lee jogou em azar. Então, este redirecionamento de configuração de motores barra um pedido de torta para o nosso serviço de pizza A e dentro eles estão indo resultar o CPI que eu aperfeiçoar. Como você vê, isso está funcionando E agora nós também podemos fazer nosso pedido na frente e mas o mais importante para lembrar que frente e não sabe nada sobre DACA ou DACA rede porque estamos executando esta cripta cálice no máquina. Então agora você sabe como podemos nos comunicar antes de tudo,
entre serviços e, em segundo lugar, entre nosso código de cliente, que não está dentro de nossos serviços. Se você tiver quaisquer comentários ou perguntas, sinta-se livre para me perguntar e eu vou respondê-los com certeza
22. Última afinação: Estamos quase terminando Horas A nas pesquisas do Dr. Kam antes de verificarmos nossa implantação. Na verdade, não
faz muito sentido verificar a implantação do rial porque basicamente, desenvolvimento em contêineres é sempre riel porque não faz diferença se você tiver esse contêiner rodando em sua máquina local ou em seu servidor. Mas é claro, vou mostrar-lhe como este contêineres ah, trabalhando em produção para que você possa ver que é exatamente o mesmo, como na minha própria máquina. Mas antes de tudo, vamos fazer alguns encontrar união para verificar se tudo está funcionando como esperado para o desenvolvimento, ambiente e produção primeiro Horrível. Vamos remover as portas daqui. Como eu já disse, nós não queremos expor nenhuma porta porque nós não implementamos ik público por enquanto, todas as nossas portas que eu expus Onley através em jinx. Então, basicamente em Li Jing é exposto em 80 portas e, em seguida, dentro de configuração de motores Aqui estamos proxim dos poros, mas estas são portas internas fora da rede Dhaka. O próximo ponto usado para remover variáveis de ambiente que não usamos. Então, basicamente, este host aqui dentro do FBI e este host aqui dentro autenticação não é usado, mas na verdade eu quero descrever o caso de uso quando precisamos dele. Então vamos supor que em algum momento você deseja redirecionar um usuário para seu host aéreo, por exemplo, seu FBI interno e basicamente o resultado da resposta não é o Jason, por exemplo, mas cada direto para a casa página, certamente pode acontecer. E então você quer saber qual host você precisa redirecionar. Então, basicamente, você está escrevendo por dentro Você é uma torta na fonte alguma coisa aqui. Sem três Jason, mas redirecionamento do vestido, e aqui deve ser o seu L. Mas a questão é que a nossa tarte A sério é apátrida. Ele não sabe nada sobre seus URLs ou o que Host of Iran Em nossa aplicação para estes, precisamos fornecer variáveis de ambiente e este é exatamente o caso. Então, basicamente, vou removê-lo por enquanto. Mas pelo menos se você precisa implementá-lo, você sabe por que você precisa e como você pode lidar com isso. Mais um ponto é que Jing estrangeiro está aqui. Se fizermos em jinx este proxy em para uma torta e aqui na verdade isso é copiar colar aqui
devemos colocar horas e não um sinônimo. Então, basicamente, estamos fazendo aqui três proxy em e para fazê-lo corretamente, precisamos aqui para escrever mais Depende. Então, basicamente, queremos primeiro iniciar este 33 serviços e então temos certeza de que estão em jinx. Será pedido proxy corretamente e não teremos um estreito. Acho que a nossa configuração aqui está muito bonita. Então nós escrevemos aqui tudo o que precisamos e agora precisamos verificar se o nosso
desenvolvimento de composição de docker também é suficiente. Na verdade, não
é porque aqui descrevemos na frente e Andy Pie. Assim, à esquerda está a nossa configuração de produção no desenvolvimento aberto olho direito. Então aqui para frente e tudo está parecendo bem. Então, em Cam Rahn start é o comando que iniciará a web. Serra desligada. Criar reagir. Sim, essas duas coisas estavam precisando exatamente criar raked em e aqui nós temos frente e feridas . Este é o nosso volume, para que possamos alterar o arquivo e nosso serviço será automaticamente reiniciado. Agora vamos falar de um cara primeiro. Vamos verificar se temos este comando. Então aqui em Peca Jason, começamos para a produção e lá para o desenvolvimento e isso não é demônio. Então isso é exatamente corretamente e ouvir Todos os arquivos de origem são montados no volume do dedo do pé. Também queremos fazer a mesma coisa em relação à nossa casa. Então basicamente temos todos os serviços e vamos verificar se temos este comando dentro. Então aqui também temos surdos para nenhum demônio. Então aqui em PM, rondel é bom e volume é o mesmo. Então aqui não será um cara, mas nossa fonte e aqui, fonte
do usuário fonte AP. Então tudo parece bem aqui e a última coisa é motores tão em jinx que queremos
sobrepor o Onley estas configurações aqui, Como você pode ver para a produção, temos aqui em Jinx Khan fraude e para o desenvolvimento. Queremos ter em Jinx Khan morte ou local o que você preferir. Então basicamente eu gosto de separar esses dois condenados completamente. Basicamente, é possível criar apenas um conflito e, em seguida, passar dentro de
variáveis de ambiente invariáveis . Mas eu acho que é muito mais difícil de suportar e verificar porque se você tem este estranho no modelo jinx com sentido variável de ambiente em. Então é por isso que eu sempre crio conflitos nos dedos e é exatamente isso que vou fazer aqui. Então nós temos exportações de motores estão ficando iguais,
que é a OTAN sobre a direita. Nossos volumes basicamente podem copiar esta linha completamente porque é o mesmo e aqui em vez de ampla, vou escrever, por exemplo, morte. Então a morte para o desenvolvimento e o caminho serão os mesmos. Agora vamos verificar se nosso desenvolvimento DACA está funcionando. Então nós apenas tentamos Docker compor menos f docker compose jahmal mentalidade Docker compor desenvolvimento até construir e estamos verificando se ele está funcionando. Na verdade, eu tenho um estreito porque meu site parou de funcionar e o ponto é que aqui para motores, eu não copiei o conflito estrangeiro chamado prod. Então eu só quero copiar e colar aqui com o nome em Jinx Khan surdo E aqui. O que precisamos mudar? Então, basicamente, tudo permanece exatamente igual. Então este proxy em é o mesmo que na produção. Então aqui, a única coisa a mudar seu nome de servidor do mundo real DACA dot com para local Basicamente, nada diz contra usar o mesmo domínio que você está usando para produção no loco em apenas atualizar seu arquivo hosts, mas acho que é mais conveniente distinguir entre dois Urais. É por isso que estou copiando tudo. E aqui eu tenho local. E se você perguntar como podemos abrir agora este seu l você só precisa abrir o arquivo host em sua máquina e colar este domínio aqui como fizemos anteriormente. Então, basicamente, eu sou apenas digitar no domínio e reiniciar Waas Mais uma vez meu médico compôs e então quando pulamos um mundo real escuro adat loco, ele deve abrir nosso l Como você pode ver, podemos saltar para o local hasta que loco e na verdade ele está funcionando, mas ele nunca obter uma flecha com soquetes de web. Então basicamente várias palavras sobre os soquetes. Então, por padrão, criar reagir aplicativo está tendo este futuro que é chamado Holter Lord, em onde Entre os soquetes três de conexão obsequiosa para Yoko grande
observador da Apple destruído . E isso significa que toda vez que você salvar o arquivo jogou soquetes criar destruído Cada observador está recebendo a resposta. Um arquivo K foi alterado e, em seguida, a página será confiada. O ponto é, aqui que nosso in jinx e isso está realmente em jinx. Agora, o que está servindo este servidor Web com este pas proxy que você viu aqui? E isso em jinx por padrão não suporta com circuitos. É por isso que estamos recebendo 404 e precisamos configurar este local corretamente e podemos
fazê-lo . Precisamos atualizar nossa versão http. Então, basicamente, daqui em diante partes proxy, podemos apenas experimentá-lo, por exemplo necessário para soquetes. Só entenda por que resultou aqui. Assim é. Proxy. Versão Http Poderia ser 1.1 e, em seguida, proxy disse cabeçalho e aqui cabeçalho seria Upgrade dólar atualização http. E, em seguida, o último é proxies tinha cabeçalho a mesma conexão e aqui levantar, atualizar fluxo. Então, basicamente, neste caso, estamos dizendo jinx estrangeiro para usar http versão 1.1 e aqui estão os cabeçalhos de atualização especiais. E agora, quando começamos nossa docker compor e recarregar a página no navegador, você pode ver que nós não temos uma era com soquetes web e enfraquecer salto na rede e aqui campo com soquetes bob e você pode ver a conexão de soquete em real mundo Doctor Loco, e está tudo bem. Então isso é começar com 101. Então tudo está funcionando como esperado. E vamos tentar, por exemplo,
para alterar um arquivo como aqui na frente e vamos nomear comer circuitos Web corrigir e nós apenas
salvá-lo . E como você pode ver no processo, a página era real. Eu fiz, e nós conseguimos que este site de mensagem seja consertado. A última coisa que eu quero toe change é que em nosso molde de desenvolvimento quando foram construídos na frente e no arquivo Dhaka, temos npm run build e em PM instalar servir. E você pode ver que quando estamos executando uma compilação de desenvolvimento, estamos fazendo essa produção construir e basicamente em desenvolvimento. Não precisamos dessas duas linhas, então é possível simplesmente usar diferentes arquivos médicos para produção e desenvolvimento. Então, para isso eu quero escrever aqui prod Então basicamente da mesma forma como com ele descobertas há orgulho e três funcionários. Então aqui é amplo e eu vou apenas copiar este arquivo e colar e renomeá-lo toe
morte arquivo docket e basicamente eu quero apenas em Dhaka morte arquivo para remover os últimos dois leões. Então, basicamente, estamos equipando todos os arquivos e PM em grande estilo. Precisamos, mas não precisamos em PM Ron construir e em PM instalar servir o nosso perfil eu estou vivendo o mesmo que Waas Agora precisamos fazer um ajuste aqui dentro frente e no desenvolvimento jahmal e na produção. Então, basicamente aqui como você vê uma maneira disse construir e construir é frente e pasta. Isso significa que o médico vai apenas ler o arquivo doc da pasta construída e ele espera
ter o arquivo DACA com o arquivo docket nome lá, que significa que o nosso nome e arquivo DACA Prod e Docker arquivo Dev não será lido porque
não é padrão. E basicamente aqui podemos remover esta linha e dizer duas coisas Primeiro do arquivo de processo de queda e este é o nome que esperamos. Então, no nosso caso, será arquivo docker prod e a próxima coisa é contexto. Então, o contexto deve estar à frente. E a idéia é que o contexto é apenas o diretório de trabalho onde vamos procurar o arquivo DACA aqui, que significa que aqui o contexto é frontal e é por isso que não precisamos aperfeiçoar nosso caminho para arquivo
docker aqui. Agora vamos fazer o mesmo para o desenvolvimento como você pode ver aqui nós não temos construído parâmetro em tudo. Então aqui eu quero especificar construir e mais,cão
direito, cão
direito, um arquivo com DACA arquivado ou morte. E aqui os contextos são frontais. E então, basicamente, é isso. Neste caso, para o desenvolvimento da produção, ainda
vamos construir o nosso projeto e instalar n g servir. Desculpe, apenas servir é muito profundamente servir. Mas para o desenvolvimento não precisamos disso e como você pode ver agora eu recomeço. Docker compor. E como você pode ver esta frente será muito mais rápido porque nós apenas instalamos pacotes. Mas não precisamos construir todo o projeto e instalar pacote adicional depois iniciar o Docker compose, você pode ver que tudo está funcionando da mesma maneira que anteriormente. Então, basicamente, nossa configuração para Dr Composto em produção e em desenvolvimento está totalmente concluída. Agora, só para verificar aqui nós temos este fundo pode manter um pedido e como você pode ver, ele ainda está funcionando. Então aqui estamos pegando os dados. E na rede, quando filtramos para X, cada um é você pode ver que estamos fazendo um pedido para a massa atual macho barra oito i slash teste foi o usuário atual. Então isso significa que tudo está funcionando principalmente e podemos ir para implantar nosso projeto para produção. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
23. Faça o Mailer: neste vídeo, Eu quero que você tente um implementar um serviço por si mesmo. Anteriormente, nós fizemos todos os serviços juntos, mas eu acho que é uma boa possibilidade de tentar implementar uma parte sem a minha orientação. Então, se você quiser fazer isso, apenas assista leitor. Caso contrário, você pode apenas manter este vídeo e ir diretamente para vídeos de implantação. Então aqui está a tarefa que falamos sobre o serviço Heaven Mailer. Então, basicamente, o que é o serviço Mehlis? É um serviço que tem um pouco A torta, e você pode de seus diferentes serviços. Peça uma torta para enviar um e-mail, por exemplo. Digamos que estamos na frente e e temos aqui formulário para registrar usuário, que significa que temos um pedido de frente e para o nosso serviço de autenticação, onde estamos dizendo OK, Polícia registrou este usuário no caso em que a autenticação foi bem sucedido para fora. serviço de sindicato deve enviar qualquer carvão de torta para os nossos Mehlis apressados para que enviemos um e-mail. Então, basicamente, os serviços da Mehlis realmente tinham escopo. Não há banco de dados lá, então nós apenas dizemos o corpo eo título fora do e-mail, que significa que algo como ok, usuário foi registrado. Este é o nome e este é um e-mail e, em seguida, no sexo masculino, ter talvez modelos ou o que você quer enviar um e-mail. E basicamente isso é como o escopo isolado Tinky, que envolve algum aplicativo de correio de terceiros ou molho que você está usando, e apenas para a nossa aplicação. Ele simplifica com este trabalho com biblioteca de terceiros. Então, mais uma vez, o objetivo é apenas implementar um novo serviço onde você terá qualquer torta. Você pode apenas fazer várias brasas de teste como, por exemplo, enviar e-mail registrado ou areia ist e-mail bem-sucedido fora para assinatura ou notificação, e apenas tentar se comunicar entre diferentes serviços. Você também precisa descrever o serviço para produção e desenvolvimento,
portanto, ele deve ter volume,
e você pode, em seguida, alterar seus arquivos localmente e ver a atualização do servidor Web final do projeto. Então eu acho que esta é uma tarefa agradável e
pequena para tentar, implementar e servir a si mesmo. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para fazê-los, e eu vou respondê-los com certeza.
24. Pudendo para git: neste vídeo, eu quero começar parte sobre implantação. E a primeira pergunta como podemos implantar tudo o que fizemos na produção? E basicamente, com o DACA, há milhões de ferramentas para implantar na produção. Alguns deles são três. Alguns deles são pagos fora do curso, eu prefiro três e estável. É por isso que vamos ficar com Docker, compor e obter basicamente a idéia com DACA e Dr Hub por padrão é um pouco diferente do que eu estou fazendo isso. Então, basicamente, quando estamos indo para uma
doca, seu hub e estamos abrindo um site, a idéia é que você pode se registrar aqui e empurrar suas imagens. O que significa que no momento em que usamos imagens como você viu aqui, por exemplo, nós usamos imagem estrangeira jinx entre ir, mas que alguém empurrou a imagem para o
centro médico e então nós podemos puxá-la. Isso é tudo bem, Mas quando você vê preços, você entende que há alguma coisa escondida é que basicamente significa que você não pode simplesmente empurrar qualquer quantidade de imagens que você quer. Você precisa pagar o curso. Há como comunidade para rappers públicos, mas quem quer empurrar imagens privadas mesmo para testes dentro do hub pato e baía dinheiro se você quiser que eles privados, que significa que precisamos de alguns são a solução Na verdade, a idéia com hub DACA e com empurrar e puxar na imagem é Israel é forte e agradável. O que significa apenas imagine que eu aluguei o servidor e agora eu quero que este projeto esteja disponível lá. Então, basicamente, se eu empurrar essas imagens que eu criei então basicamente aqui nós criamos, tipo, cinco imagens para cada contêiner de cada serviço no hub Dhaka e então eu posso simplesmente puxar essas imagens uma vez e usá-las. A idéia é que eu não deveria construí-los como você viu aqui, o que nós fizemos cada vez que nós construímos cada vez que nós estamos correndo para cima. E esse processo de construção é muito longo. Mas, basicamente, do meu ponto de vista, não
faz qualquer sentido usar DACA Harb Oh, são outra solução diferente onde você precisa pagar dinheiro só porque sua imagem será pro build lá. Podemos simplesmente construir esta imagem diretamente no servidor de produção. E nada diz contra isso porque basicamente, não
é como se você tivesse 2000 servidores e construir a imagem em todos os serviços é tão difícil? Então, basicamente, aqui está minha idéia que eu estou usando para todo o meu projeto e não apenas o meu, mas também projetos da empresa. Ele está funcionando muito bem E você não precisa DACA hub ou solução similar para isso. Então nós simplesmente colocamos nosso resfriado como sempre em obter rapper Então nós fizemos isso para todos os projetos. Então você tem um hub, um laboratório ou o que quiser, onde você hospeda seus trippers. Então estamos apenas empurrando o resfriado deles. Nada mais. Sem imagens, sem médico, nada. Então nós apenas configuramos um servidor como algum servidor Lennox normal de qualquer provedor o que você quiser. E lá nós instalamos DACA e Docker compor e, claro, então, simplesmente precisamos puxar o nosso projeto de obter triplo. E há sempre portuário Irã compor construir e depois Docker compor e basicamente, estamos prontos. Sem ferramentas específicas. Basta obter DACA e docker compor. Obviamente, se você está fazendo essas coisas para 200 serviço, ele não se alimenta, mas normalmente se você desenvolver em pequenos projetos e deixando não tão pequeno mas para pequenas equipes como 10 15 pessoas, você ainda pode usar essa abordagem. Realmente não é demorado e você não precisa pagar por nada. Então é assim que vamos implantar com nosso projeto. Então, para mim, eu sou um usuário de laboratório get. E aqui se você quiser empurrar o nosso projeto para, por exemplo, obter lâmpada ou ter ou o que você tem, você simplesmente precisa criar um novo projeto. É como a mesma interface em todas as plataformas. Então aqui está o nome do projeto que eu posso usar o mundo real Doce-o. Eu acho que este é o nome já usado por mim porque eu já empurrei. Então eu criarei o mundo real aka Test e aqui é privado. Então é por isso que eu gosto. Amor você tem Reppas privadas de graça E aqui você tem instruções sobre como você pode empurrar, por exemplo e existe se desdobrando. Então isso é exatamente o que temos. Você precisa ter Giddens teldyn sua máquina. Espero que você tenha. Você pode verificá-lo com G menos versão. Então você simplesmente precisa escrever ficando necessidade, em
seguida, obter remoto em Origen. E este é o Ural da minha reputação. Oh, então se acrescente. Você se comprometeria e seria empurrado. E depois disso isso é exatamente eu fiz isso porque eu salvei todos os arquivos que temos. Então eu já tenho esse rapper. E aqui está o meu empurrão Trapper. Então estes são apenas todos os arquivos que temos aqui. E se eu for apenas um salto para o galho, onde estou? Você pode ver todos os nossos mais velhos que criamos e duas coisas que Docker compõe desenvolvimento e Docker compor. Então tudo é empurrado e agora podemos começar com o servidor de produção. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
25. Configurando o servidor de produção: neste vídeo. Eu quero falar sobre configurar nosso servidor de produção basicamente para executar nosso código e nosso observador em algum lugar, precisamos alugar um servidor e pagar dinheiro fora do curso. Eu entendo isso com o propósito de apenas completar o curso. Talvez você não queira pagar pelo servidor do Rial e gastar dinheiro com isso. Então, basicamente, festival. Você pode apenas assistir o final do curso sem pagar o dinheiro para o servidor, porque você vai ver que ele está funcionando exatamente como este. E você pode fazê-lo quando estiver pronto para isso. E em segundo lugar, você só precisa de qualquer máquina Linux onde você vai começar o médico com docker compose para que ele não precisa ser um servidor alugado onde você paga mineração, você pode simplesmente instalar sua máquina Linux. Qualquer Lennox que queira testar. Por exemplo, na sua máquina antiga ou na sua máquina atual. Vou usar a solução de preços deles. Então é isso que estou usando. Mas isso não é um anúncio, então você pode usar qualquer serviço de nuvem que você precisar. Então, basicamente, nós só precisamos de serviço de linho com um sábio, e eu estou usando cabeças em um porque é realmente barato, e eu acho que esta é a coisa mais barata que eu encontrei. Então aqui você pode saltar para a nuvem e aqui você tem preços. E basicamente, o servidor mais barato por mês custa cerca de três euros para dois gigabytes
e 20 gigabytes de espaço em disco. Então eu vou criar aqui do que o seu servidor apenas para os fins de teste e, em seguida, removê-lo quando eu não precisar dele. Então, basicamente aqui eu me registrei como, ah usuário. E aqui você pode apenas clicar no servidor e, em seguida, você pode selecionar a alocação. Na verdade, não importa. A imagem vai usar quem não vai pisar 18. São tipos finos propostos. Também está bem. E aqui você pode verificar o tamanho. Então, basicamente, eu vou pegar o menor e aqui à direita, você pode ver que o preço é quase três anos por mês. Basicamente, você não precisa de nada mais caro. Isso é suficiente para até mesmo vários projetos. Então é isso. Basicamente, não
precisamos de volumes. Não precisamos de rede. Não precisamos de futuros adicionais. E, na verdade, nada aqui vou escrever Docker. Qual era o nome Doc? O Mundo Real levou-o. Soldado. Vamos nomear Israel mundo dot com, e eu acho que é bom nome e nenhuma chave ssh. Selecionado muito comando para usar uma chave ssh. Na verdade, este curso não é sobre Lennox e como configurar seguramente bate era. Então eu vou apenas dizer que se você quiser fazê-lo corretamente, você precisava Lee algum conhecimento como esse você não deve usar um usuário root. Para um usuário normal za em seu servidor, você precisa, pelo menos, criar usuário adicional e dar este tipo de usuário de permissões para que não totalmente rota. E neste curso, apenas para o bem fora da simplicidade, eu vou usar exatamente o usuário rota por padrão do usuário raiz será criado. Então, vamos obter um passaporte por e-mail e vamos simplesmente instalar DACA e Docker compose Então nenhuma configuração de servidor
riel que você realmente precisa para a produção. Então aqui eu apenas clique em criar e agora e então ele é criado. Você pode ver aqui processo e no e-mail eu vou obter suas credenciais para a minha conta raiz. Então, basicamente, eu já recebi um e-mail com o passaporte para a conta raiz. Então aqui está eu apenas cliquei aqui neste novo servidor e como você vê, nós temos um endereço p no topo. Então precisamos copiar estes e, em seguida, apenas baseado, é uma rota sábia. E, em seguida, no e o endereço CPI. Depois disso, devemos entrar, e precisamos fornecer passaporte rota a partir do e-mail. Então aqui eu colei a senha e precisamos fornecer a senha atual e, em seguida, você senha porque a senha deve ser automaticamente alterada para sua senha depois que você obter o excesso toe do servidor. Então, basicamente aqui, uma senha atual e então você senha. Tente algo seguro. E agora estamos dentro da nossa concha. Então aqui, como você pode ver, eu estou no diretório raiz e eu estou aqui na minha Sarah alugada. Então agora tudo parece bom e precisamos instalar DACA e docker compose. Então, aqui em Hesse, o artigo razão olhos já como instalar DACA e como implantar conhecido ela s aplicação, é super rugido, mas além de isolamento DACA e docker compor é realmente válido. Então usei este link. Isto é como uma documentação da comunidade para cabeças Agora, se você não gosta deste tutorial, você pode fazer o tutorial que quiser. A idéia principal é que em seu sistema, você precisa instalar DACA End, aka Composto. Então, aqui vou pular parte com configuração de imagem e assim por diante e empurrando hub do dedo do pé. Isso é exatamente o que não fizemos. E aqui está o passo para em grande estilo em Dhaka em um pacote. Então, primeiro de tudo, queremos atualizar tudo e, em seguida, instalar esses pacotes que estão estado aqui. Então nós apenas baseamos tudo e esperamos. Então parece que tudo foi instalado. Agora vamos saltar para o próximo passo, precisamos adicionar DACA gp geeky e configurar personalizado Rep. Oh, Então, basicamente, podemos simplesmente copiar colar estes novamente na linha comum e aqui ele está instalado. O último passo é fazer uma atualização novamente, porque precisamos atualizar este aplicativo personalizado triplo e, em seguida, instalar piada isi. Então eu apenas baseei esses comandos e novamente precisamos esperar pela instalação. Então aqui estamos batendo. Sim, e o DACA está sendo baixado. Agora você pode dirigir dr menos moda e verificar se o médico foi instalado com sucesso. O próximo passo estilo oriental DACA compôs e basicamente a podridão levou um mês aqui, o 1º 1 não senhores um binário e o segundo disse que este binário para ser permitido a execução. Agora vamos verificar se devemos ter Docker compor assim que ele tinha, como um composto menos paixão. É também o instalado e disponível e o último passo é adicionar o nosso usuário atual aqui grupo DACA. Então, basicamente, podemos John Doctor comandos de nosso usuário atual. Então, simplesmente precisamos colar este comando. E como você pode ver, meu usuário não existe. E espero que, por razões de segurança, você criará não usuário root. Mas você é só usuário. Mas como este é um processo de teste, eu vou simplesmente aqui rota usando. Mas, claro, não
é bom usar o usuário root. Deve ser apenas para privilégios de administrador. Agora vamos tentar executar algum comando médico para que possamos montar Dr. Processos e ver que não
temos nenhum processo e tudo está instalado. O que significa que o Doc está lá. Docker compose está lá e nós gastamos, eu acho, menos de cinco minutos para não dominar tudo em nosso novo servidor. Se você tiver quaisquer comentários ou perguntas, sinta-se livre para perguntá-los e eu vou respondê-los com certeza
26. Implementação: No vídeo anterior, configuramos com sucesso nosso servidor. Então DACA e Docker compose está disponível farsa e agora só precisamos implantar nosso projeto. Então, basicamente, é muito simples. Primeiro horrível. Queremos clonar do laboratório nosso relatório. E em segundo lugar, nós só queremos fazer os mesmos comandos como o fez localmente. Então aqui vou eu para a minha ondulação e pego o galho que eu quero. Se você tem o mestre, você só leva o mestre. E então aqui é clone e queremos toe klik Copiar aqui l de clone com um sábio. Então aqui estamos nós no Git Clone. Podemos simplesmente copiá-lo na nossa pasta raiz. Ou podemos criar aqui, por exemplo, pasta
Projetos e aqui dentro do projeto. Queremos clonar o mundo real do nosso laboratório. Então, como você pode ver, comando
git não encontrado O que significa que eles precisam instalar get tão apt Get install get Vamos tentar novamente Obter clone E estamos clonando nosso mundo real. Certo, e aqui precisamos bater. Sim, porque estamos fazendo isso da primeira vez e não temos acesso ao relatório porque obviamente este estripador privado e excesso negado. Precisamos aqui de uma chave pública para clonar o repo. Então aqui precisamos criar uma chave ssh em nosso servidor. Pegue uma chave pública e coloque-a lá dentro. Chame o laboratório. E para isso você pode simplesmente Google obter permissão negada chave pública em Obter lâmpada em algo assim. Basicamente, a idéia é que você simplesmente ao redor como um sábio novamente e ele irá gerar um manter a sua oração entre público e privado cada Saiki. Por isso, será seguro toe dot ssh ideia ar. Diga, você só precisa apertar Enter mais uma vez porque nós não queremos uma frase secreta e agora ela é gerada. Então aqui podemos fazer menos. Por exemplo, rota que é um sábio. E aqui temos a nossa ideia de chaves, Risa e ideias para
cima, agora você simplesmente pode abrir com eles. Eu sou um pub. Então ele iss slash governou filha s um sábio i d bomba ERISA e a equipe não está correta. Comandante disse à BV e como pode ver aqui você tem essas chaves então basicamente você pode simplesmente copiar tudo e jovem e agora ir para a nossa configuração de lâmpada em seu perfil. Então, basicamente, em seu perfil, você pode clicar em configurações. Então aqui está as configurações e aqui você tem chave Ssh. Agora estamos simplesmente colar aqui a chave e clique na tecla. Depois de fazer a tese, deve
funcionar com a nossa reputação. Oh, então vamos tentar novamente aqui com um clone Git. E como podem ver agora, não
temos problemas com o Clone no representante. Oh, então aqui eu tenho o mundo real. Certo, vamos entrar na pasta. E aqui você pode ver obter expressão de mina remota. Você pode ver que ele foi retirado do laboratório Get. Agora, aqui estou eu no mundo real pegou uma pasta e nós queremos começar Docker compor compilação. Então nós tentamos Docker compor construções e é isso. Nós não precisamos menos f aqui porque nós simplesmente fazemos uma compilação de produção. E como você pode ver aqui temos algumas imagens e algumas imagens serão puxadas. Então, basicamente, depois disso, estamos fazendo todas as mesmas coisas que fizemos em nossa máquina local. E como em nossa máquina local, nós desenvolvemos com imagens Linux, é tudo isolado e ele vai 100% funcionar, Então não é como normalmente, Winds disse anteriormente resultado Dockers algumas ferramentas localmente e, em seguida, na produção. Eles não trabalhavam aqui. Isso não pode acontecer porque toda vez que criamos um contêiner começamos com o
contêiner super fresco com a mesma imagem. Mas aqui está mais uma coisa importante a entender. Há uma diferença entre construir uma imagem na produção e puxar a imagem do hub
Dhaka. Então, basicamente, você pode sentir a diferença quando estamos construindo algo na produção. Não podemos ter 100% de certeza de que funciona porque estamos construindo a partir de nossos arquivos. O que significa que, por exemplo, aqui em algum lugar nós tivemos Mongo última. Então aqui nós não temos uma versão específica, que significa que quando estamos construindo sobre o mangá de produção mais recente, talvez nós vamos obter a versão mais recente que não vai funcionar com o nosso projeto. Então, ou você precisa aqui versões específicas como fizemos aqui com jazz conhecido como você se lembra aqui em uma torta, por exemplo, com a versão exata especificada. Neste caso, será construído o mesmo. Mas é claro que você deve estar ciente disso. Então é por isso que eu tento sempre não usar coisas como mais recentes ou estável, mas alterá-los mais tarde na versão exata. Como você pode ver aqui depois de escurecer, você compor construir tudo foi instalado e imagens maçantes foram criadas. Agora nós simplesmente precisamos executar Docker compor e é isso. Isso é exatamente o que fizemos em nossa máquina local. Agora, como você pode ver, uma composição de encaixe foi feita com sucesso em nosso servidor. Agora a questão é como podemos abrir um re um mundo aka Com em nosso servidor. E normalmente podemos comprar o domínio, por exemplo, este e, em seguida, no registro original, você simplesmente definir a configuração fora do endereço I P que será vinculá-lo com este domínio . Não queremos comprar um domínio e fazer esse processo. Então a resposta fácil é a mesma, como fizemos anteriormente através do host. Então, basicamente, costa é uma coisa muito legal porque você pode dizer em sua máquina local que você não quer
ir para a Internet e procurar por este domínio. Mas você simplesmente quer Hecate. E neste caso aqui, podemos providenciar para o mundo ferroviário que isso poderia vir? Não o nosso anfitrião local, mas o
endereço P. do nosso servidor. Então aqui eu copio das cabeças do console. Agora que nuvem calma o endereço AP do meu servidor e colá-lo aqui e agora com Israel World docket tinha chegado Quando eu vou abri-lo no navegador, ele vai saltar para este endereço ap e não no domínio rial se ele sequer existe. Então vamos bater aqui. Entre E como você pode ver no console, eu vou apenas torná-lo limpo mais uma vez como você vê nosso estivador compor Israel dentro de nosso servidor. E estes são os registos dos nossos motores, o que significa que o nosso domínio já funciona com a nossa Sarah. Então, basicamente, menos que dois minutos, eu acho, ou pelo menos dois comandos que começamos na produção totalmente nosso projeto sem qualquer grande agitação porque estamos 100% certos de que nosso projeto funcionará em qualquer máquina. Como você pode ver com apenas Ron Docker compor, construir Docker compor e isso é que você pode ver agora eu confiei na página e não
funciona porque eu parei o processo. Agora, a principal coisa aqui é que você não quer tê-lo manipulação no console como sem parar um ble Você queria ser desanexado do console e para isso. Você cavou um comando composto menos D. E como podem ver aqui, estamos começando tudo. Mas você não verá os registros depois porque eles serão desanexados. Então agora, como podem ver, nosso cônsul está livre. Podemos limpar a comida, e com processos de encaixe, podemos verificar quais processos temos? Então estes são os nossos processos para a torta de Doc A do mundo real. E se você quiser verificar registros,
você pode escrever logs escuros e então o nome,
por exemplo, Logs de in jinx aqui mostrará em fechaduras genéticas E agora com o Senhor novamente . E como você pode ver, nosso site está funcionando e é exatamente assim que eu imploro projetos para produção. Basta obter clone ou deitar para obter piscina. E então eu apenas Irã Docker compor ar menos construir. E, em seguida, se for
necessário, ele será automaticamente construído ID e volta novamente. E agora você pode até checar aqui no console Ive Nossos pedidos de império entre serviços
estão funcionando . Então você pode ver que sim, ele está funcionando porque aqui temos o mundo real arrebentou calma e ouvir a nossa resposta e está funcionando. Mas aqui estamos usando nosso domínio de produção. Então, basicamente, isso é o quão fácil e agradável você pode implantar aplicativos Docker Compose para produzir qualquer Hessel. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
27. Doce: No vídeo anterior, implantamos com sucesso nosso aplicativo para produção. Agora quero falar um pouco sobre limpeza. Então basicamente você e depois que implementamos este projeto, se vamos escrever algo como Docker Image, por exemplo, imagem
escura, menos que você possa ver um monte de imagens na minha máquina. E talvez até mesmo algumas imagens não sejam o que instalamos. Então, basicamente aqui, como você pode ver, eu tenho muitas imagens, non non, e isso também é um problema. Então, em primeiro lugar, toda a questão é o que não é conhecido e como podemos remover tudo com segurança que não
precisamos . Então nenhum non é normalmente algumas imagens intermediárias imediatas que não precisamos, mas elas foram usadas para construir. Não precisamos nos aprofundar neste pequenino, mas queremos com certeza excluir todas as imagens que não são usadas. A mesma coisa é considerado contêineres que podem ser iniciados em nossa máquina ou apenas trava redes, volumes ou qualquer outra coisa, Doc, você coisas que você criou então normalmente um longo tempo as pessoas estavam removendo imagens de cardo , mas agora há um comando muito bom. Se você escrever sistema DACA e, em seguida, ele entra, Você vê algumas coisas do sistema que você pode usar e há um comando especial que é chamado ameixa, e ele removido e usado dados realmente pode limpar com segurança Tudo. O que eu mencionei, como imagens para contêineres Williams assim por diante. Então vamos tentar essa ameixa do sistema DACA e aqui estamos batendo em Enter. Como você pode ver, isso irá remover todos os contêineres de parada todas as redes que não são usados por contêineres, todas as imagens penduradas e todo o dinheiro. O que significa que, basicamente, se não fizermos pesquisas de comunicação de Dhaka, todas essas coisas serão removidas. E isso está tudo bem, porque quando construímos nossas imagens, podemos apenas inventar o comando e vamos usá-las. Então, basicamente, tudo bem para remover aqui tudo e não, este comando não vai quebrar o seu sistema. Então, basicamente, eu só estou batendo. Sim, e agora ele estará removendo coisas e às vezes ele pode limpar realmente muito. Às vezes não é muito, mas aqui você pode ver que ele exclui contêineres e exclui redes. Basicamente, aqui você pode ver que algumas redes como a padrão. Ele ainda está lá porque foi criado um para o início para o nosso mundo real. Certo, mas então trocamos a rede nomeada e é por isso que não precisamos mais dela. O mesmo acontece com as imagens. Como você pode ver, leva um pouco de tempo, mas no final vamos ver quanto dilatado como você pode ver, levou como, dois minutos na minha máquina para remover tudo, e a parte mais importante é imagens excluídas. Como você pode ver, eu tinha um monte deles e na parte inferior você pode ver o espaço total removido waas seis gigabyte. Então eu recomendo que você faça esse procedimento de vez em quando em seu servidor de produção e também localmente quando você desenvolver, porque neste caso você recuperará muito espaço. Se você tiver quaisquer comentários ou perguntas, sinta-se à vontade para perguntá-los e eu responderei com certeza.
28. Trabalho de casa: Então aqui, onde você terminou com sucesso meus carros fora Docker compose e Dhaka e foram
implantados com sucesso nossa aplicação riel para produção. Eu acho que ele entendeu que o médico não é uma bala de prata, mas é uma ferramenta que foi realmente bom caminho e podemos usá-lo realmente eficiente quatro desenvolvimento local e produção. Então, sim
, aconteceu. Doc Files e Docker compor pode ser complicado, especialmente com coisas como mantra pé, Senhor e assim por diante. Mas basicamente estamos fazendo isso naqueles após o desenvolvimento local e implantação na produção é realmente agradável e rápido. E, claro, o mais importante é que ele é estável. Agora a questão é o que fazer a seguir. E, claro, como sempre, Eu estou dizendo que aprender através do curso é bom Fazer realmente, Aplicação é bom, mas fazê-lo sozinho é o mais importante. Então, basicamente, eu recomendo que você faça um projeto. Se você já tem, por exemplo, algum projeto lateral pequeno e tentar escrevê-lo com DACA e docker compor apenas pelo bem que você entende como ele funciona do início ao fim. Se você não tem esse projeto, basta tomar qualquer projeto que você quer desenvolver por si mesmo. Por exemplo, eu não sei se você quer construir qualquer torta para cinema ou talvez um clone fora da Netflix, ou talvez um painel de trailer e apenas escrever implementado a partir do zero usando o Docker e é sempre se você tiver quaisquer comentários ou perguntas, Sinta-se livre para perguntar a eles, e eu vou respondê-los com certeza e vê-lo no meu próximo curso.