Docker com Django, PostgreSQL e Compose para seu ambiente de desenvolvimento Python

35.92k views16538 WordsCopy TextShare
Otávio Miranda
Nesse vídeo você vai aprender a configurar o Docker com Django e PostgreSQL para seu ambiente de des...
Video Transcript:
fala pessoal nesse vídeo nós vamos criar um ambiente de desenvolvimento utilizando docker post-gressql e Django para que você tenha um ambiente muito similar ao que você vai ter em produção já no seu computador tá nesse vídeo vou focar somente em ambiente local táxi você vai usar para você desenvolver no seu computador se esse vídeo tiver curtida tiver comentário e tal a gente cria um outro vídeo fazendo o deploides então a gente joga isso para produção mas nesse momento eu quero te explicar cada detalhe de cada uma das coisas que a gente vai precisar utilizar aqui
você vai perceber que o docker Adiciona uma camada enorme de complexidade em cima do Django mas vale a pena porque é um ambiente reproduzível ou seja Na onde que você quiser subir aquele ambiente de desenvolvimento que tiver o docker é óbvio você vai conseguir fazer isso aí então esse vídeo é uma parte o meu curso Então pode parecer que eu estou me referindo a outros vídeos desse canal mas na verdade eu estou me referindo a outros vídeos do meu curso de Python então se eu falar eu já falei sobre isso com você ou a gente
já falou sobre essa outra coisa que não ligue com isso é porque isso é um trecho de um curso que tenho várias outras aulas mas dito isso vamos lá colocar a mão na massa e criar esse ambiente de desenvolvimento utilizando docker SQL e o Jungle pra gente desenvolver nossos apps de ângulo utilizando docker então continuando aqui que que eu vou fazer primeira coisa que eu vou fazer criar o nosso repositório e eu vou seguir o mesmo a mesma nomenclatura aqui que eu coloquei no projeto anterior que foi o projeto agenda então vou lá no github
tô aqui no github em qualquer lugar vou clicar no maisinho aqui no menu né e vou clicar em mil repositor Ok fazendo isso aqui eu dou um nome para o meu repositório que eu não posso usar o mesmo nome do projeto anterior vou colocar projeto blog se digitar corretamente Jungle 23 vou deixar o mesmo nome aqui só para a gente lembrar o que que é isso aqui Este é o Projeto a descrição aqui Este é o Projeto blog criado no curso de Python de Luiz Otávio Miranda pronto público repositório público você não precisaria manter um
repositório público se você não quiser mas eu recomendo também todo código que você escrever Não guarde ele só para você isso é só vantagem para todo mundo tá até para assim se for pensar no modo mais egoísta até para que os Hunters Red Hunters encontrem você e te contrate né conheça como você faz o código mas aqui no caso estou falando até em termos de comunidade né você tá compartilhando com o mundo o seu conhecimento e isso é um negócio bem legal não vou colocar um adwitter me porque eu vou criar esse Ready lá mas
eu não vou colocar texto nenhum como sempre aqui no curso você sabe o que que a gente tá fazendo então isso aqui não é um negócio para todo mundo sair utilizando é mais para você que tá nesse curso mesmo então aqui eu vou dar um print repositório ele vai me entregar de volta o seguinte ele tá falando aqui para mim que eu já criei o repositório né Eu tenho um quick setup que eu posso utilizar https ou SSH eu já configurei SSH aqui nesse github tá eu falei sobre isso com você em sessões anteriores eu
te mostrei vídeos na internet caso você tenha dificuldade você pode vir aqui no Google e digitar guite Hub se eu não me engano mais SSH mas Git Otávio Miranda e aí se você buscar tudo que você buscar e colocar meu nome Provavelmente você vai encontrar algum vídeo selecionado aqui para você mesmo então aqui eu falo nesse vídeo que eu falo sobre Git github SSH aqui basical é claro mas já dá 40 minutos de conteúdo para você aprender mais sobre isso aí bom dito isso aqui que eu vou fazer eu vou copiar essa URL aqui do
meu SSH pronto copiado e na verdade eu tenho que criar esse projeto aqui no meu computador então lá no meu desktop eu vou criar aquele nome de projeto que eu acabei de esquecer aqui qual que é o nome projeto blog Jango 23 então ó aqui eu vou criar um mcadir projeto blog Jungle 23 pronto criado essa pasta eu vou abrir essa pasta no visual Studio code tão aberto aqui a pasta você vê que tá sem zoom a gente já vai corrigir isso aqui colocando um vscold mas antes de qualquer coisa aqui eu vou só colocar
um redmi aqui então vou criar um arquivo chamado de redmi.md eu vou colocar aqui ó Este é o blog vou só chamar de blog aqui e aqui eu vou colocar aqui uma descrição Este é o blog que foi criado no curso de Python de Luís Otávio Miranda pronto é isso se você quiser aqui no visual Studio dá para dar um preview Market Down que é basicamente assim que vai ficar lá né sim dessa maneira e pronto tá criado aqui o nosso Ready MD que que eu vou fazer aqui agora vou abrir eu já tô no
terminal aqui então vou ficar aqui nesse terminal só para você ver eu vou abrir esse projeto aqui então CD projeto blog vou entrar nesse diretório aqui no caso no meu terminal e aqui eu vou falar eu já tenho o Git configurado tá se você não tiver o guia de configurado lá naquele vídeo lá eu falo sobre isso não guit config você vai colocar aqui o seu global e user ponto name E aí você coloca o seu nome ali então Git config mesmo global e user ponto name o e-mail que vai ser guite config menos global
e user ponto e-mail e eu recomendo também que você coloque o seu Branch então emite.s se eu não me engano vai ser isso mesmo kit config Global isso aqui ó inite.defalte Branch Man então esses três commandinhas para configurar o Git aí no seu computador depois guite inite dentro dessa pasta aqui vai iniciar o Git dentro desse do seu projeto aqui então você vê que acabei de criar um repositório Git aqui dentro você vê até que o visual Studio code está vendo que eu tenho um arquivo aqui que não tá sendo traqueado né Não sei se
essa palavra existe mas tá andracked aqui então para adicionar esse arquivo aqui você pode vir aqui Git add o nome do arquivo que seria o redmi né só que você pode também fazer Git AD ponto para adicionar tudo que tiver ali Dependendo do que você tá fazendo não é recomendado você fazer isso porque senão você vai estar enviando lá para o projeto coisas que talvez você tenha editado e nem saiba o que que é então uma outra forma seria se mandar o arquivo mesmo em si então [Música] MD que ele adicionaria esse arquivo ali e
aí outra forma de você fazer isso aqui pelo visual Studio clicando aqui e aí Aqui você pode ter um mais aqui ó no caso aqui eu já adicionei ele então ao invés de antract mas se eu tirar ele ele volta a ser antract E aí se eu clicar nesse mais é a mesma coisa aqui então cliquei no mais a mesma ideia e aí também eu poderia comentar por aqui só escrevendo a mensagem come tal o início aqui por exemplo E aí eu dou um comiti aqui mas eu não uso muito essa parte do visual Studio
code Geralmente eu venho aqui faço gitcomith que é aquele comiti lá menos M nesse caso eu comente Inicial então o início e pronto agora eu preciso adicionar você vê que agora não tem mais azinho nenhum nem nada aqui no meu arquivo né Agora eu preciso também fazer o seguinte adicionar isso aqui esse repositório que eu copiei ali né que eu acho que eu já perdi Eu vou copiar de novo eu tenho que adicionar esse repositório do github aqui no meu projeto então Git remote E aí eu vou colar lá que eu copiei do push Origin
Man só para você conferir se o seu braint não tiver o nome de men Git Brant você vai conferir lá que o meu nesse caso chama Men mas se o seu chamar Master você pode fazer Git Brant menos M Man e aí você modifica o nome do seu Branch para mim ok feito isso aqui agora Git Plus toda hora eu vou colocar um menos u para configurar isso aqui como up stream então na próxima vez que eu vou tentar fazer um post eu posso digitar só que ele já sabe que é o Reading Man Então
pronto feito isso aqui voltando aqui se eu atualizar a página eu devo ter um Reading aqui então tá lá blog Este é o blog que foi criado no curso de Python de Luiz Otávio Ok mais alguma coisa aqui que eu gosto de colocar já de cara aqui para não ter problema depois Então vou vir aqui e vou falar ponto Git e gnor E aí pronto criei esse arquivo eu tenho que jogar aqui o conteúdo dele dentro ali do projeto Então vou copiar o meu aqui e vou te mostrar ele aqui geralmente que eu faço é
vir aqui na internet e falar assim ponto Git e Ignore Django por exemplo aí você vai achar um monte de exemplo olha lá que eu já achei um primeiro aqui eu copiar esse aqui pronto mas como eu já tenho já fiz esse projeto antes eu vou te mostrar que meu geekg knor que é o seguinte aquele eu copiei aquele arquivo que eu te falei que eu te mostrei ali e aqui eu coloquei os meus arquivos estáticos meus arquivos de média meu local séries a gente não vai usar isso nesse projeto mas só para garantir o
Unicórnio erlog caso a gente for utilizar Isso aqui é uma pasta que eu costumo utilizar aqui para escrever código que não tem nada a ver com isso aqui para testar alguma coisa então eu ignoro isso aqui e barra data também o Barra data vai ser um arquivo vai ser usado pelo docker a gente vai falar dele depois tá o resto aqui tudo eu copiei e colei então muita informação ali abaixo não foi eu que criei Beleza então pronto nosso Git gnor foi criado Então a gente tem que comentar isso aqui também então deixa eu fechar
essas coisas você vê que ele tá com o de andract se a gente fizer lá o nosso Git AD ao ele vai mudar para a agora né que está adicionado ali então se a gente quiser comentar isso aqui guite comete menos m a de adicionei né vou colocar em português adicionei um ponto e aí se você quiser enviar agora lá para o repositório você vê que não tem nada aqui mais se você quiser enviar já configurei o Up streaming então get push já manda esse Git gnor lá para o github Então se a gente voltar
aqui só tem o redmi né se autorizar eu tenho agora Git gnor aqui beleza então basicamente isso aqui eu vou te mandar nessa aula o link desse último comitch E aí você pode copiar esses dois arquivos tanto Reading quanto o Git genor redmi não é necessário mas o Git gnor é necessário ser colocar porque senão você vai começar a mandar coisas desnecessárias ou até sensíveis para dentro do seu github então aqui basicamente como que eu te mando esse link eu venho aqui no Comet qualquer ou entra aqui em qualquer lugar que você quiser né ou
no título do convite também adicionei o Git knor clico nele e aí que que eu faço aqui você vê que tem dois arquivos tem um arquivo só aqui dentro né mas geralmente quando tem muito arquivo o que eu faço é o seguinte eu clico aqui nos três pontinhos viu para ver esse arquivo Ok E aí eu tô dentro desse comiti agora se eu clicar aqui não aqui tá aqui ó nesse local aqui eu vou ficar dentro desse comício você vê que eu ainda estou aqui no adicionei o Git gnor e aqui em cima na URL
você vê que eu tô em uma tri aqui dentro desse comitina então aqui ó esses arquivos quando você entrar no link dessa aula só vão existir esses dois mesmo que eu tenha colocado já um monte de arquivo aqui porque porque aqui é que eu vou para para o último convite né é que nesse link aqui beleza então basicamente eu vou deixar o link aí para você já começar esse projeto também continuando aqui pessoal o que que eu quero fazer agora já imediatamente para você não ficar vendo eu ter que dar zoom aqui na tela né
Toda hora eu vou criar a pastinha ponto vscold e um séries.pike Então vou copiar o meu aqui do outro lado do outro projeto e aqui eu vou criar uma pasta chamada de ponto vscode e dentro dessa pasta tô indo devagarzinho aqui porque eu vejo muita gente ter problema com isso aqui então séries.jayson pronto e agora eu posso colar as configurações todas aqui que você tem acesso aí em todas as aulas você vai ter acesso nisso nessa aula aqui também e eu vou salvar isso aqui e aí já muda aqui as configurações do meu vs code
que na verdade não são essas tá eu tô observando aqui que eu tô na minha padrão aqui porque eu tava criando o projeto antes então não queria ficar com muito zoom na tela né porque não é muito legal então vamos lá Luis a MF eu vou pegar do outro projeto celular que é o meu github eu vou pegar do projeto agenda anterior o mesmo ponto vscold que a gente usou antes então vou copiar ele aqui e vou colar aqui e aí agora a gente tem aquela tela grandona com a letra grandona também que você consegue
ver melhor e aí que que eu faço eu vou deixar o visual Studio code nessa tela eu vou pegar essas outras janelas e vou mover aqui para outra outro desktop então pera aí para já ficar igualzinho que você costuma ver aí no curso Então pronto estamos aqui esse terminal não vou usar ele aqui depois eu vou abrir do próprio visual Studio code depois eu eu confio isso aqui porque eu gosto de deixar mais Abas aqui no terminal para eu fazer uma coisa numa outra coisa na outra e assim por diante Então pronto é configurada aqui
é o nosso visual Studio code se você quiser comentar pelo quando você pelo vs code Aliás quando você tá trabalhando só aquele cara E aí você fala o que que você fez você vem cá e adiciona o arquivo né ou então você pode adicionar todos de uma vez esse aqui seria equivalente a get adds Cold barra séries.jison e esse de cima aqui esse mais aqui quando fala Stage All Changes ele é responsável por fazer um Git AD All Git AD ponto Então vou colocar aqui né pronto adicionei depois que eu adicionei eu falaria O que
é configurando o vs code ou então você pode até colocar ponto vs Cold barra séries ponto Jason pronto então configurando vs code né Vou Colocar assim porque fica mais fácil de ler então ver esse Cold e esse Cold séries isso aqui daí você pode clicar aqui comite beleza depois você comentou você pode fazer o Git Plus fazendo essa sim changes Ok E aí ele vai sincronizar Se tiver tudo certo a sua configuração é claro ele vai sincronizar lá com o nosso repositório E aí esse é o convite que eu vou deixar aí nos recursos da
aula para você nessa aula Então pessoal O que que a gente vai fazer agora eu vou criar um ambiente virtual que pasme mas esse ambiente virtual não vai ser usado Ele é basicamente para que em um instale as coisas aqui e o vscold não fique reclamando comigo que não tem coisa instalada por que que eu tô te falando isso como eu te falei eu vou utilizar o docker e lá dentro do docker eu vou ter todas as coisas instaladas isso quer dizer que eu não precisaria ter um ambiente virtual que no meu computador porque o
docker já vai ter essas coisas instaladas lá dentro Mas o que eu acho e isso aqui é mais opinião meu pessoal minha mesmo eu gosto de usar criar um ambiente virtual que já ativar ele e trabalhar como se eu estivesse desenvolvendo aqui no meu computador porque assim o visual Studio code sabe tudo que eu tenho instalado lá no Meu Container eu tendo um ambiente virtual local aqui é mas como eu te falei isso não seria necessário né em teoria isso aqui não seria nem utilizado não vai ser utilizado é mais para desenvolvimento mesmo e aí
devem existir outras maneiras de se trabalhar mas essa é a que eu acho mais simples de todas quer criar um ambiente virtual coisa que a gente já está acostumada a fazer aqui em parto então Python menos a mvm deve criar pastinha verde e aí a pastinha vem ela fica aqui cinzinha então ela tá sendo ignorada pelo Git knor O que é desejável que pra gente é agora eu quero instalar o Jungle então eu vou ativar um ambiente virtual só para conferir Pires para ver se tá tudo certo e a primeira coisa que geralmente a gente
faz é PIP install PIP menos menos upgrade isso aqui porque o PIP Geralmente vem desatualizado aqui quando a gente faz Cria um ambiente virtual E aí se você não fizer esse esse comando aqui ele vai ficar te dando ordem falando que o PIP está desatualizado só que não tem problema também ele te dá esse Warner Porque depois ele te passa qual comando que é para você executar para você atualizar o PIP Então esse aqui eu já executei porque eu sei que ele vai pedir para eu executar isso aqui então por isso que eu já executei
isso aqui e agora PIP em install Jungle E aí se a gente fizer um PIP free você vai ver que a gente tem coisas aqui do Jungle é o Jungle e algumas coisas que o Jungle precisa aqui para trabalhar mas em teoria só instalei o Jungle em si aqui beleza então instalado que que eu vou fazer no meu vai ser um pouquinho diferente isso aqui tá porque como eu te falei eu vou utilizar o docker se você não estiver utilizando docker você pode seguir como eu te falei como as versões anteriores as sessões anteriores do
curso né as duas outras sessões de junco aqui como eu vou utilizar o docker essa pasta raiz aqui não vai ser a raiz do meu projeto de ângulo essa raiz Aqui é onde eu vou ter todas em configurações que vão envolver docker vão envolver volumes do docker enfim coisas que eu vou utilizar no docker SI Então o que eu vou fazer eu vou criar uma pasta chamada de Jungle app e essa pasta Jungle app é na onde vai estar vai ser a raiz do projeto Jungle Então vou entrar nela ali então vou CD Jungle app
depois você sai dela Claro mas eu vou entrar aqui e vou falar Jungle admin start Project vamos chamar de Project mesmo e aí ponto então Jungle de mim start Prodigy Project que vai ser o nome da pasta do Jungle e o ponto final aqui é para que ele Coloque tudo dentro dessa pasta aqui como raiz que a pasta que eu entrei via CD Então posso sair dessa pasta beleza e aí Aqui você pode perceber agora que a gente já tem um projetinho Jungle aqui dentro então a gente tem lá ó o nosso produtic onde está
a séries wish ur e a gente tem um mana de ponto pai dentro da pasta raiz do projeto Jungle que é Jungle up então toda vez que eu for que eu precisar não que a gente vai precisar fazer isso aqui agora você vai entender isso depois mas toda vez que eu precisar executar mana de ponto pai não vai ser Python manage ponto pai vai ser Python Jungle app barra manage ponto pai e aí eu colocaria aqui o que eu quero Ram server por exemplo executaria ali o meu servidor Jungle então em teoria se eu abrir
esse projeto aqui agora já tava ali eu tenho um projetinho Jungle funcionando bonitinho ali posso parar isso aqui não é assim que eu vou trabalhar mas era só para você entender é como que as coisas estão funcionando aqui eu tenho um ambiente virtual entre aspas funcional porque eu vou instalar tudo nele aqui mas em teoria não vamos usar esse ambiente virtual ele é só para desenvolvimento e o que a gente vai usar mesmo é o seguinte a gente vai mover essa pastinha copiar essa pastinha para dentro do contêiner docker a gente vai executar ainda alguns
comandos lá dentro do container docker para a gente ter tudo bonitinho ali funcionando se você executou o comando na aula anterior para subir o seu projeto Django né com meningite você vai perceber que um arquivo DB ponto sqlight foi criado aqui se você não tiver usando docker você pode usar esse DB ponto sqlight em desenvolvimento tem problema algum nisso agora se você for usar o docker apaga esse arquivo DB ponto sqlight aí que criou porque a gente vai utilizar o post Green no docker já de uma vez Então a gente já começa o desenvolvimento do
jeito que ele vai lá para o servidor quando a gente tá utilizando docker quando eu tô trabalhando com Jungle puro eu não ligo em ficar usando skillight aqui no projeto porque lá no servidor eu posso fazer configuração depois dito isso apagado o arquivo DB ponto sqlight o que a gente vai fazer é o seguinte eu vou criar dentro da pasta Jungle app aqui um arquivo chamado de ponto TXT então isso aqui o nome do arquivo requirements.txt nesse arquivo que que eu vou fazer esse arquivo vai ser usado dentro do container docker para instalar todas as
coisas que eu vou utilizar no meu projeto então por exemplo a gente pode começar com o Django aqui geralmente no recuarmantsc Deixa eu voltar aqui para você ver se eu fizer um pi Freeze aqui você vai ver que pode ser sim também tá se você quiser usar isso aqui assim ó vou copiar aqui só para você ver pode ser assim também tá só que que eu quero eu quero que todas essas versões aqui ó desse tamanho aqui né essa última parte aqui que geralmente são correções de segurança né que não mudam muito nosso código eu
quero que essa versão final ela possa ser atualizada até chegar nessa versão aqui ó então por exemplo aqui em quatro pontos eu não quero que atualize o Django aqui para essa versão porque pode ser que tem alguma coisa assim do modificada e eu não consigo mais usar esse projeto Então o que eu vou fazer eu quero Jungle maior ou igual a 4.2.1 atualmente no momento da gravação dessa aula a última versão do Jango é 4.2.1 mas eu quero que ele atualize esse trechinho aqui ó caso tenha alguma atualização Então vou colocar uma vírgula aqui e
vou falar quatro ponto três mas eu quero o seguinte menor que 4.3 que que isso indica para mim se você sabe de programação você vai entender esse aqui eu quero qualquer versão que seja maior ou igual a 4.2.1 e que seja menor que 4.3 Isso significa que ele vai mudar toda essa versão final aqui mas ele nunca vai mudar essa versão aqui de dois para três que eu tô pedindo menor que 4.3 então agora com o nosso requirementsc criado ainda a gente não vai usar isso aqui porque a gente vai usar isso aqui lá dentro
do Jungle E aí eu vou te falar do nosso dockerfile do nosso docker compou os pontos Y ml então ainda leva um tempinho pra gente usar isso aqui mais outra coisa que eu preciso é que também lá dentro do container não preciso disso aqui no meio ambiente virtual Mas lá dentro do container eu vou precisar que sai com PG 2-bine e isso aqui atualmente eu já salvei que tá na versão 2.9.6 e eu quero que ele faça a mesma coisa que ele atualiza o 6 final ali então menor do que 2.10 pronto essas duas coisas
são o quê o Django em si e o Psycho PG é um negócio que o Jungle utiliza para fazer a comunicação com o psl né SQL então como eu vou já usar o post-gress que ele o Jungle precisa disso aqui instalado lá dentro do container para que ele consiga se comunicar com o post grayscando Então pronto criado aqui o nosso arquivo tá se você quiser saber dessas coisas as versões né finais e tal você pode vir aqui no seu computador colocar pai ali né que é na onde ficam as coisas do Python pai pai.org deixa
eu chegar ali para você ver o endereço e aí você digita que aquilo ali que eu coloquei por exemplo Django você vai encontrar o primeiro geralmente é o Jungle e sim então você vai ver que a gente tá na versão 4.2.1 agora e o Psycho PG Bayer deixa eu ir lá o primeiro aqui ó você vê que ele tá até mais atualizado aqui a posse grudar também a dar adapter eu tô usando dois tá eu tava olhando o sai com o PG o dois aqui que é o que eu tô usando tá na versão 9.6
então por isso que a gente colocou 2.9.6 menor que 2.10 E aí ele atualiza só o 6 aqui até onde estiver atualizações dito isso um outro arquivo que a gente vai utilizar e esse aqui também Geralmente eu copio ele de algum lugar vai ser o ponto e isso aqui é na raiz agora tá eu vou criar um arquivo chamado de ponto docker Ignore E aí eu vou colar isso aqui eu vou deixar esse comando aqui para você como eu te falei Geralmente eu copio isso aqui de alguém que já criou isso aqui já passou por
esse trabalho aqui para eu não ter esse trabalho tá Mas isso aqui basicamente ignorando coisas para dentro para o nosso contém né então basicamente ele não vai mover coisas aqui que estão aqui para dentro do Meu Container e isso economiza espaço no seu container são coisas que geralmente são desnecessárias lá dentro do nosso container como eu te falei você pode tentar copiar aí de no lugar da internet só colocar docker e Ignore para Jungle por exemplo você vai encontrar várias opções aí e é exatamente isso que eu fiz provavelmente eu adicionei algumas coisas aqui não
me lembro as quais mas é basicamente isso aqui agora a gente precisa começar a criar o nosso container docker mas eu não vou fazer isso nessa aula só para não ficar muita coisa numa aula só então a gente precisa de um dockerfile e a gente precisa de um docker com pouse porque eu vou utilizar o docker com pouse aqui para trabalhar com a minha aplicação Jungle post e post Green dentro do mesmo do mesmo container não vão ser dois contêiner diferentes mas é para a gente gerenciar elas aqui pelo mesmo projeto agora pessoal nós vamos
criar as nossas variáveis de ambiente o que que são variáveis de ambientes são variáveis que estarão disponíveis apenas no ambiente em que elas foram criadas isso geralmente é chamado de dot enver é um arquivinho chamado ponto envie que você vai ter somente naquele local por exemplo aqui no meio ambiente local eu vou ter um da champio que não vai para o github mas eu vou te mostrar como criar um exemplo desse arquivo aqui então vamos lá vou criar uma pastinha aqui chamada de Vou colocar aqui próximo para você Dote envie underline pai então nessa pasta
eu teria meus arquivos dot AMV ou ponto and então aqui dentro eu vou criar um arquivo chamado de ponto Henry traço e esse arquivo ele sim será enviado para o deixa eu aqui as variáveis de ambiente já falo sobre elas Então vou copiar vou colar aqui e aí que que eu vou ter aqui dentro desse arquivo ponto envie exemplo de como uma pessoa subiria ou para esse projeto aqui dentro do computador dela então esse Secret aqui vai ser usado já já a gente faz isso mas esse seco aqui vai ser utilizado dentro do meu séries
ponto pai beleza então ao invés de eu ter que vir aqui alterar isso aqui eu vou mover isso tudo que é importante que para dentro desse ponto MV exemplo mas eu não vou colocar os valores reais aqui esse aqui lembra é um exemplo para alguém subir isso aqui tá uma pessoa tem que configurar isso lá no computador dela aí tendo esse Dote em xampu que que a gente faz eu venho aqui copio esse arquivo assim que eu peguei esse projeto a primeira coisa que eu vou ver isso aqui o Copie esse exemplo e daí eu
mudo o nome dele tirando o traço exemplo da frente você vai ver que esse arquivo aqui não vai para o githup tá vendo ele tá cinza quem vai é esse aqui porque porque aqui é basicamente eu posso colocar as coisas reais né então tipo assim se curte que senhas usuários essas coisas não vão para o github nesse arquivo aqui esse é o real esse aqui é o exemplo Beleza então isso aqui é basicamente como se fosse igual aquele local séries que a gente usou em projetos anteriores então Aqui Deixou geral já uma sequência aqui para
gente eu já te mostrei Esse comando antes então pai tão menos C eu Gero aqui letras e números e tal já te mostrei antes no projeto anterior esse aqui e aí eu vou tirar as aspas daqui de dentro tá só para garantir que isso vai funcionar Então deixa eu diminuir isso aqui deixa eu ver se eu ver qualquer aspa dentro aqui do meu do meu arquivo que isso pode gerar transtorno eu vou tirar e aí só ficam as aspas de Fora the bug em desenvolvimento é two a gente trabalha com the bucktroll em desenvolvimento no
servidor Não e aqui eu vou depois criar um script lá dentro do settings tá para ler esses valores mas aqui são valores que podem ser separados por vírgula então esse aloud hosts eu vou colocar os meus hosts que são permitidos aqui no Jungle separados por vírgula Então nesse momento eu só tenho o 127.0.0.1 e o local roxo que é o mesmo endereço escrito de formas diferentes aqui aqui embaixo eu tenho DB em Dini que vai ser o que eu vou utilizar lá no Django também vou utilizar no séries que vai ser Jungle beber back Ends
post Grey SQL e aqui de baixo aqui que é basicamente a gente vai ver isso depois eu não me lembro acho que é Jungle debb Jungle user eh aliás post grid.b post Grey user post grip password essas variáveis aqui são usadas tanto no meu vão ser usados né tanto no meu projeto quanto na imagem do docker lá então isso aqui se eu fosse você eu não mudaria os nomes dessas variáveis aqui aliás todas elas porque você pode ter problema depois aqui tá mas eu vou te explicar essas coisas aqui então pronto configurado aqui o meu
circuito que o meu the bug tá como um true meu aloud host está bonitinho aqui configurado meu DB em Dini Jungle de bebê é quente grita certinho aqui eu vou ter que mudar então qual que vai ser o nome da base de dados que você vai utilizar compostri SQL lembra a mais de dados que você colocou no outro você pode mudar isso depois não tem problema mas lembra a caso que você colocou no seu projeto agenda que a gente fez anteriormente coloca uma um nome diferente aqui então aqui só para ter certeza eu vou chamar
de blog underline base de dados pode ser o nome que você quiser aqui tô colocando o nome aqui lembra isso é um nome de base de dados Então tem que ser um nome que possa ser lido como base de dados Então coloca só letras em underline aí que você vai se dar bem usuário do do post Green aqui vai ser como que ele vai chamar vou chamar de blog underline user e o poste gripe password Vou colocar qualquer senha aqui vou colocar blog user password pronto e aqui no post Green host vai ser realmente localhost
e a porta padrão do post Grey 5 4 3 2 pronto feito aqui que eu vou fazer eu vou ver no meu séries aqui e daí eu vou pegar do outro projeto aqui que eu vou te explicando que é bem mais rápido assim então vamos lá primeira coisa que eu vou fazer é pegar o meu the bug deixa eu pegar ele aqui o código aqui para você vou colar aqui e aí que que isso aqui faz eu preciso importar o os lá em cima Então vamos lá vou importar aqui em cima Import os E aí
descendo aqui que isso aqui faz ó esse ponto getnve ele busca variáveis de ambiente Então os get enver vai buscar coisas que eu tô criando aqui no meio ambiente como the bughosts isso aqui isso aqui isso aqui então nessa parte aqui ó esse ponto vai pegar o valor disso daqui basicamente ó the bug vai ser um só que toda variável de ambiente sempre vai te retornar uma string Ok então para garantir que caso não exista esse the bug aqui gerado no meio ambiente eu vou ter o valor zero inicialmente porque de criar essa variável de
ambiente de bug meu the bug vai ser falso zero mas vamos continuar aqui depois eu converto isso aqui para int porque sempre que eu utilizo get Angel eu vou ter uma string de volta então o convite isso aqui para int então em teoria eu só posso ter 0 e um aqui ou 0 e qualquer outro número vai ser true mas era vai ser sempre falso então é 20 converte aqui se tiver aqui por exemplo um eu vou converter isso aqui para int para garantir que depois eu possa converter isso para bom E aí eu saber
se for qualquer número que tem algum valor em Python né além do zero o zero vai ser sempre falso então the bug inicialmente caso não exista nada aqui no meu da Tim viu não encontra essa variável de ambiente o the bug vai ser falso caso exista alguma coisa lá na minha na minha variável de ambiente eu vou pegar esse valor aqui tentar converter inteiro Geralmente eu vou colocar 0 em 1 então 0 falso untry e depois eu vou converter para bolean então 0 vai ser falso qualquer outro valor numérico vai ser true então ou the
Buck falls como eu tô colocando aqui de bantcho eu vou ter the bug true a loud hosts ele é mais complicadinho um pouquinho e eu vou ter que escrever um script aqui já vou te mostrar ele aqui deixa eu copiar ele aqui e já te mostro que que eu tô fazendo aqui no meu a loud hosts eu faço o s.get a loud hosts ou uma stream vazia porque porque como eu te falei get envie vai obter as variáveis de ambiente que o docker vai carregar aqui pra gente então docker vai carregar esse arquivinho aqui depois
eu vou te mostrar como carregar ele com o pai então do Chang mas aqui ó o aloudhost você vê que ele é uma string também que pode ter valor separados por vírgula E aí que que eu faço nesse script pego o get ave né ou então uma stream vazia e dou um Split na vírgula então o que que isso vai gerar para mim ele vai separar vai criar uma lista sendo que os valores vão estar separados por vírgula só que qual que é o problema aqui o problema é que eu tô separando somente a vírgula
né então pode ser que no final das contas eu tenho uma lista onde eu tenho e esse valor correto e aí eu parto aqui na lista e eu tenho esse valor tá vendo que tem um espacinho no começo aqui isso gera transtorno então para evitar isso aqui lá no nosso séries eu tô fazendo um forte nessa lista né uma lista aqui nessa lista que vai ser retornada desse valor aqui e eu tô pegando o h de host então h ponto strip porque que que o strip faz ele remove os espaços do começo então se eu
tiver vários espaços aqui não tem problema e se eu tiver vários espaços aqui não tem problema então fazendo strip aqui para cada H na lista que eu tô retornando aqui se esse h ponto strip tiver algum valor então pode ser que eu tenho um valor vazio né como é o caso aqui se eu tivesse essa valor vazio Pode ser que ele tente adicionar esse valor vazio dentro da minha lista então aqui eu garanto que eu só vou adicionar isso aqui na minha lista se esse valor não estiver vazio isso aqui é basicamente isso compreende tá
então pronto faltou aqui a 50 aqui é facinho porque já não precisa fazer nada isso realmente é uma string Então vou copiar aqui ó só para você ver ó 50 aqui oes.get envie 50 porque por isso eu tô te falando para você não mudar os valores aqui das do nome das variáveis de bug aqui é the bug aqui que tá mais para cima é cinco é que aqui tá vendo e aqui é o valor padrão né caso não exista eu coloco ali então beleza A loud hosts aqui é a loud hosts aqui e assim por
diante agora a gente precisa configurar lá embaixo a nossas as nossas bases de dados Então deixa eu pegar aqui para você ver então vou copiar aqui vou ir lá embaixo em baixo de dados e agora você não vai conseguir subir mais esse projeto do jeito que a gente fez antes tá então nem tenta fazer pai então de ângulo é barra mana de ponto pai vamos server que agora a gente só vai rodar isso aqui com o docker então aqui que eu tô fazendo ó a data bases aqui vai ficar como default aí eu tô pegando
ainda sendo DB em dia lá dentro do Dot Amin então bebê é esse valor aqui e aí eu tô também colocando valores padrão aqui eu tô colocando só Strings tá então nem preocupando converter nada aqui porque nem precisa o name é o nome da base de dados entendeu post Grace DB E aí também tô colocando o valor padrão o user tá pegando mesma coisa o password está pegando que tem tudo isso aqui criado e aqui embaixo eu tenho o host e porte Então essas coisas aqui já estão todas configuradas aqui para a gente agora a
gente precisa também configurar algumas coisas ali embaixo então lá embaixo Aqui eu vou colocar o language como PT por exemplo BR que é para Brasil América Barra São Paulo para o time Zone e aqui mais abaixo aqui a gente lembra que a gente tem esse start que o URL aqui né eu vou colocar assim ó estático URL start que Rute sendo lembra que a gente fazer beijd E aí fazia alguma coisa que eu vou mudar aqui um negocinho lá em cima lá então lá em cima do nosso arquivo a gente tem esse beijinho aqui né
por que que eu vou ter que mudar uma coisa aqui o meu os meus arquivos estáticos não vão estar dentro dessa pasta aqui do Jungle APP os meus arquivos estáticos vão estar numa pasta que vai existir aqui ainda ela não existe ainda mas ela vai existir aqui fora chamada de data e aí barra web então o que que eu vou fazer aqui eu vou criar esse data de ir esse data de ir vai ser o seguinte eu vou até copiar aqui para você ver esse data de ir vai ser o seguinte eu vou pegar o
meu beijo que é a raiz aqui do projeto Jungle vou subir uma pasta Então vou pegar a raiz e vou pedir o perrent dessa pasta que é a raiz aqui do projeto em si então vou sair dessa pasta de Angola é vou ver para raiz do projeto aqui dentro eu vou pegar uma pasta que ainda vai existir a gente vai criar ela com docker chamada de data e outra pasta chamada de web então no final das contas os meus arquivos estáticos só para você entender vão estar na pasta barra data barra web barra startic os
arquivos de média vão estar na pasta barra data barra web barra média você vê que eu vou estar fora dessa pasta do Django aqui então isso aqui vai mudar um monte de coisa lá na frente tudo que a gente for fazer vai mudar um pouquinho então por isso que eu quero que você entenda isso aqui agora então já tem esse data dirk coloquei aqui porque caso eu precise de ele que eu já tenho ele lá em cima criado junto com um mês de ir tão descendo lá embaixo agora sim a gente pode configurar o start
root que vai ser data de barra start que lembra disso aqui que é barra data/web que já tá no data de barra start e eu vou ter também essas mesmas configurações aqui para o meu media Rute Então deixa eu colar aqui para você ver média Underline o RL que vai só mudar aqui para mídia e aqui também média e aqui embaixo também média e aqui vai ser média underline Ruth Então essas configurações aqui são basicamente os meus arquivos estáticos que eu tô configurando então estático URL vai ser barra start que desculpa estático vai ser basicamente
Onde estão esses arquivos estáticos então como eu te falei aqui esse caminho media URL vai ser a os arquivos enviados pelo meu usuário que vão estar vão ter esse link e vão estar dentro do média root e agora a gente precisa configurar a URL padrão do nosso projeto para a gente incluir esses arquivos aqui então vamos lá para você entender Jungle app Project url.pay aqui você vai fazer o seguinte você vai importar duas coisas aqui eu vou até copiar aqui que é mais rápido deixa eu importar essas duas coisas se você já vai entender o
que eu tô fazendo aqui então vou importar duas coisas o seres Down são as séries do Jungle mesmo então eu não posso importar aquele arquivo diretamente eu faço from Jungle ponto compenings statica Import eu vou fazer o seguinte aqui embaixo a gente até fez isso antes lá na configuração dos outros projetos agora como a gente vai criar um blog né para você ter ele mesmo você pode usar esse código aqui se você quiser eu vou checar se tiver the bug como true eu vou adicionar esse URL paters isso aqui no meu URL patters aqui que
é o start que passando média URL e média Rute porque senão não consigo ver arquivos de média enviados pelo meu usuário enquanto eu estiver desenvolvendo então é basicamente por isso que eu tô fazendo essa configuração aqui então inicialmente Essa é a configuração que eu preciso para o meu dot AM Lembra eu tenho um Dote em xampu o real é o dot envie que é o ponto AMV e eu tô pegando essas configurações aqui do meu arquivo dot envie dentro do meu séries aqui porque porque o docker vai carregar isso aqui automaticamente automaticamente não né a
gente vai configurar o docker para que Ele carrega essas variáveis de ambiente quando ele tiver gerando a nossa imagem e já isso fique salvo lá dentro do container então é basicamente a gente criando variáveis dentro da nossa imagem e lendo essas variáveis aqui no nosso séries aqui beleza então basicamente isso aqui para essa aula a gente só criou basicamente os arquivos de inverno que a gente chama de ambiente e essas variáveis aqui também a gente mudou Nossa séries aqui completamente agora Então pessoal a gente vai começar a trabalhar no docker Beleza então como a gente
ainda vai começar ainda vão ter coisas para fazer até que a gente Execute isso aqui mas o que eu quero te falar é o seguinte do arquivo docker file em si então aqui na raiz do meu projeto eu vou criar um arquivo chamado de docker docker com cara fiho tá vendo que até mudou o íconezinho ali esse ícone tá mudando se eu não me engano ou é por causa do Mateus icon tends que eu utilizo ou é por causa da extensão do docker que eu tenho instalado aqui não sei qual dos dois tá fazendo isso
mas eu tenho também uma extensão do docker instalado aqui você não precisa disso mas aqui no docker File O que que a gente vai fazer a gente vai precisar informar de qual que é a imagem que a gente vai utilizar como base aqui dentro então eu não vou ficar digitando aqui não tá então vou copiar de cá mas eu vou te mostrar cada uma dessas coisas e te explicar cada uma dessas coisas inclusive eu comentei cada uma das coisas aqui também então o que que eu vou fazer inicialmente se o seu houvesse que eu tiver
fazendo isso eu não sei porque que o meu tá fazendo isso mas ele tá pedindo para eu configurar um default formator por algum motivo aqui mas não tem problema só cancelar aqui Não deixa ele formatar o arquivo automaticamente para você não Caso esteja acontecendo isso aqui para você ter precisamente o arquivo que eu tenho aqui que que eu tô fazendo eu vou usar como base a imagem do Python na versão 3.11 utilizando o All Prime 3.17 o que que é isso o que que significa na verdade Python 3.11 você sabe que é o pai então
na versão 3.11 o All Pine é uma versão do Linux bem leve e pequena e segura muito utilizada em imagens do docker Mas se você quiser utilizar outras imagens você pode vir no docker Hub vamos olhar lá o docker Hub Eu recomendo que você utiliza a mesma que eu tô utilizando para não ter problema tá então docker Hub só pesquisei no Google pesquisar por Python E aí você vai encontrar as imagens oficiais tá então Python essa Essas são as imagens oficiais do Python e aqui vocês vão ver você vai ver várias tags aqui embaixo Aqui
eu gosto de utilizar a versão estável do Python então 3.11 ainda é uma versão estável quer dizer já é uma versão estável do pai Então nesse momento eu gosto do All Pine tá então você pode escolher aqui a versão que você quiser eu tô utilizando Qual 3.17 a gente pode até inclusive mudar para 3.18 deixa eu copiar aqui ó só para garantir que não vou ter nenhum erro então tá então dois pontos três pontos 11 é isso aqui 11 é Python 2.3.11 aliás deixa eu copiar isso aqui ó ao pai 3 só para garantir E
aí eu tô nessa versão aqui então deixa eu pegar aqui ó Python 3.11.3 já deixa eu copiar copiar aqui e isso aqui tá o que que eu tô falando aqui eu quero Python na versão 3.11.3 do All Pine 3.18 aqui embaixo só mantener tá então coloca o seu e-mail e seu site seu qualquer coisa que você quiser aí no mantenedor disso aqui agora vamos para as configurações aqui eu deixei cada uma delas comentadas eu vou só copiar aqui colar e te explicar então aqui eu tenho o seguinte Python don't bright bite code que que isso
faz não escreve aqueles arquivos ponto pai yc no disco um significa que ele não vai escrever porque é variável chama Python Don isso aqui são variáveis de ambiente que configuram o próprio pytho em si tá o zero para assim Então deixei para não escrever bytecodes pode economizar um pouquinho deixar sua imagem docker um pouquinho mais eficiente menor basicamente é aqui eu a gente costuma colocar Python ambaford para garantir que o Python não vai fazer buffer das coisas antes de exibir ela na tela Então quando você dá um print por exemplo é pode ser que você
queira ver isso em tempo real que é realmente o que a gente quer né e em alguns momentos o pai então pode fazer buffer salvar essa coisa e memória e depois ir descarregando do buffer Então já não quer isso aqui na imagem do Pai então é basicamente aquele menos u que a gente passa na configuração do nosso Python agora isso aqui a gente vai ter que criar tá eu preciso ter a pasta de angor app Se você olhar aqui a gente já tem a pasta de app e eu preciso de uma outra parte script a
gente vai fazer isso aqui juntos também então já vamos criar aqui ó na lateral uma pastinha chamada de deixou ele lá próximo da onde eu criei scripts essa pastinha de script scripts você pode colocar scripts aqui dentro para executar esses scripts lá dentro do seu container eu vou te mostrar isso aqui depois mas que que a gente faz aqui copia a pasta Jungle app para dentro do container Ok copia a pasta scripts para dentro do container também e só aqui inclusive Pode ser que esses caminhos assim bem problemas lá dentro do nosso do nosso do
Windows né na verdade porque esses caminhos aqui são mais para Linux eu vou tentar deixar assim se der algum transtorno a gente muda isso aqui aqui é o seguinte como a gente copiou essa pasta lembra que a gente copiou a pasta de Anglo app aqui em cima para dentro do container lá dentro do container eu quero basicamente entrar nessa pasta então eu quero trabalhar como se eu tivesse dentro dessa pasta que lá no container por isso por esse motivo né o work de li né eu posso executar Python manager.pay sem ter que ficar entrando nessa
pasta aqui ele já vai entrar automaticamente por Este comando aqui aqui é o seguinte a porta 8000 vai estar disponível para conexões externas ao container por quê Porque a gente quer conectar no nosso site de ângulo na porta 8000 que né basicamente como a gente faz aqui né porta 8000 Então a gente vai conseguir fazer isso aqui expondo a porta 8000 do nosso container E aí depois a gente vai configurar mapeamento de portas algumas outras coisas aqui agora vai ver um comando enorme eu vou te explicar cada uma das Linhas dele aqui que é o
ramo esse Run deixou fechar aqui te explicar aqui esse ramo ele executa comandos em um Shell dentro do container para construir a nossa imagem tá Já já vou ler os comandos aqui para você entender o resultado da execução do comando que é esse comando aqui é armazenado no sistema de arquivos da imagem como uma nova camada por isso a gente tem só um ramo você poderia ter cada uma dessas linhas aqui ter um ramo assim sabe vários ramos assim mas a gente quer executar somente um Ram aqui para não ficar criando várias camadas dentro da
imagem Aí eu expliquei isso aqui para você agora o pau os comandos em um único ramo pode reduzir a quantidade de camadas da Imagem e torná-la mais eficiente menor mais rápida e assim por diante menos complexa e assim por diante então por isso que eu tô executando isso aqui tudo numa tacada só eu poderia como eu te falei ter vários Run e executar cada um desses comandos sem esse final aqui né é e executar cada um separadamente aqui mas eu vou Executar tudo de uma vez para não ficar criando camadas lá dentro da nossa do
nosso da nossa imagem esse Run ele vai executar o quê Python Olha que legal o que que é isso aqui faz Python menos M vem a única diferença é que eu coloco barra vem ver aqui para ele criar na raiz da minha imagem então o pai tão menos M vem barra vem cria o ambiente virtual lá dentro da minha imagem na raiz né E aí esse e dois erros comerciais barra invertida indica aqui para o docker que tem mais linhas aqui esse comando então cada invertida é para porque eu tenho que ter isso aqui para
eu ter outra linha aqui embaixo aí aqui que que eu faço eu entro no ambiente virtual Bin o PIP por quê Porque que eu tô fazendo assim e não estou ativando o meu ambiente virtual porque eu tô gerando a imagem ainda então nesse momento eu não vou ter o meu ambiente virtual ativo Inclusive a gente nem vai ativar o ambiente virtual porque a gente vai colocar essa pasta barra vem de barbeans no pé do sistema mas aqui eu tô fazendo basicamente os comandos que eu faria quando eu estiver criando a minha imagem então PIP install
menos menos upgrade PIP ele atualiza o PIP depois ele faz PIP install menos R barra junglements.txti esse aqui barra de angularmentes.tc basicamente isso aquiments.txt lembra que a gente tá copiando essa pasta barra de ângulo Jungle app aqui no caso para dentro do diretório a gente tá trabalhando de dentro dessa pasta aqui então aqui eu instalo os repriments Então a gente vai instalar o Django e o Psycho PG feito isso aqui a gente executa mais uma linha de comando para criar um usuário lá dentro do All Pine Então a gente vai criar um usuário chamado de
deusa e a gente ao invés de usar o root é uma boa prática você usar o seu próprio usuário dentro da sua imagem então por isso que a gente tá criando aqui nós comando faz o quê adiciona um usuário dizerbo password quer dizer que esse usuário não vai ter senha não cria home desse usuário porque no Linux é comum que é uma pasta home seja criada para usuário e o nome desse usuário vai ser DB user esse usuário não consegue logar no sistema tá é só para a gente usar ele aqui para a gente trabalhar
aqui com o nosso Jango E aí mais uma linha a gente cria agora a nossa pasta Lembra que eu te falei que os nossos arquivos estáticos vão estar numa parte chamada barra data/ de barra startic tanto criando essa pasta MK cria essa pasta aqui e mkdir menos P cria outra pasta de média barra data/web barramed tá você poderia mudar esses caminhos Eu não mudaria se fosse você porque para garantir que você consiga depois fazer deploides aqui é esse comando chaon aqui ele muda o howner da das coisas aqui então eu quero mudar o honner da
pasta venve que é o meu ambiente virtual da pasta data web static e da pasta data web média Eu já falei sobre permissões sobre esses comandos Change onner c&a Mod em um vídeo que se eu não me engano chamado de permissões Linux Otávio Miranda vou colocar Otávio Miranda eu acho que é isso aqui esse arquivo aqui então pesquisa aí ó que você vai encontrar no YouTube usuários grupos e permissões no Linux Otávio Miranda você vai entender melhor esses comandos aqui isso aqui é tudo relacionado com permissões então Change oner eu mudo o honner que dá
essas pastas e CH mode eu mudo as permissões essas pastas para 755 aqui e a nossa pasta de scripts eu tô adicionando mais x em tudo que tiver dentro dessa pasta scripts aqui porque eu vou criar arquivos aqui dentro agora já já a gente cria aqui ó vou criar arquivos aqui dentro que vão ser executáveis então aqui eu tô colocando mais x em todos os scripts dessa pasta para que eu possa só digitar o comando o nome do arquivo aqui e ele já tente executar esse script para mim pronto então isso aqui basicamente é um
super mega comando aqui para configurar coisas que eu preciso dentro da nossa imagem continuando aqui agora a gente vai algumas coisas no pé mudar o usuário e executar um comando Inicial toda vez que a gente subir a nossa imagem então aqui ó nesse envio aqui que eu tô fazendo eu tô colocando a pasta script e a pasta do ambiente virtual os binários do ambiente virtual no PES do Linux o que que isso faz tudo que é digitar ali de comando dentro do meio ambiente virtual ele vai buscar nas pastas aqui do ambiente virtual se ele
encontrar primeiro em scripts ele já executa Isso é o que eu digitar ali de comando de script se ele encontrar em bim ele já executa também o que tiver em mim isso faz o que faz com que eu não tenha que ativar o meu ambiente virtual porque a primeira parte que ele vai procurar aí na scripts que não vai ter nada do Pai então a segunda passa que ele vai procurar o Python quando eu digitar Python vai ser na vem barra bem e ele vai encontrar no meio ambiente virtual então desativar o ambiente virtual que
ele já vai utilizar esse Python aqui no meio ambiente virtual depois a gente muda o usuário porque até aqui até antes desse comando a gente está executando tudo como Rute aqui e não é uma boa prática trabalhar com como Rute dentro do Linux mas a gente precisa do root para executar a maioria dessas coisas que a gente fez então por isso aqui a gente só aqui a gente muda o usuário para o nosso de user que é o usuário que a gente criou nessa linha aqui e aí depois a gente executa um arquivo chamado commands.sh
Lembra que eu te falei que quando eu digitar algum comando qualquer dentro do meu Linux ele vai buscar aqui na pasta pé scripts primeiro e depois vem barbim e depois o restante do pé que já estava configurado ali então então agora se eu criar esse arquivo commands ponto sh dentro da pasta script ele vai executar esse arquivo caso ele encontre então quando eu digitar commands ponto sh que é isso aqui como comando ali dentro da minha imagem docker ele vai encontrar esse arquivo aqui e ele vai executar ele deixa eu te mostrar aqui o que
que a gente vai colocar inicialmente nele aqui duas coisas que eu gosto deixa eu colocar isso aqui e te mostrar primeiro eu tenho que colocar isso aqui que é chamado de chibang tá eu tenho que colocar isso aqui para que ele tem que executar esse arquivo com o bar bem barra sh lá dentro do Linux e daí eu vou configurar o Shell para que ele encerre caso ocorra algum erro na execução do script aqui porque vai ter bastante coisa aqui então o que que eu vou colocar uma coisa isso aqui eu peguei da internet tá
então é basicamente copiar e colar isso aqui eu vou tentar fazer com que o meu comando o meu Shell Espere Até que o powershell o post gree SQL Desculpa até que o post-gressql esteja ativo e funcionando para continuar a execução então o que que eu vou fazer aqui isso aqui é um Shell script que faz um Will aqui checando o post-way host lembra lá do nosso dot And Fire ele checa o post greyhost na post report voltando aqui na post report ele faz o seguinte eles exibem essa mensagem esperando para pela base de dados do
post-way para iniciar eu mostro aqui as variáveis e ele dá um sleep de ponto um segundo então enquanto ela não tiver ele vai ficar executando esse Uai aqui enquanto não tiver iniciado ele vai ficar executando esse wion assim que ele detectou que Agora sim eu posso gritar ativo ele exibe essa mensagem postream Database started Six pronto simples assim novamente isso aqui é só copiar e colasse não precisa fazer mais nada aqui tá aí que que eu vou fazer eu vou fazer um collect start no meu Jungle vou fazer um my greate E aí eu vou
subir o servidor Então vamos lá ó aqui dentro Python manage ponto pai lembra a gente já tá dentro da pasta aqui ó a gente já tá dentro dessa pasta aqui ó Ok então pai collect startic Python manage contra o pai my great e Python manage ponto pai server isso aqui esse comando aqui comandos né como eu coloquei ele aqui como um CMD aqui dentro do meu dockerfile esse comandos aqui ele vai ser executado toda que eu subir a minha imagem docker então isso aqui tudo que tá aqui dentro vai ser executado toda vez que eu
der um docker compôs up aí minha imagem sumiu ele vai Executar tudo isso aqui vai fazer um colect start que vai fazer o my great e vai subir o meu servidor assim eu não preciso ficar aí mandando ele subir o servidor manualmente só fazer docker com pouso up Por enquanto vai ser isso aqui para o docker file agora a gente precisa criar um docker compose um arquivo de docker composto onde a gente vai falar os containers que a gente vai utilizar então vou ter um container para ser o meu Jungle app a gente vai chamar
de Jungle app e eu vou ter um outro container que é chamado de psql que vai ser o nosso post Grace que ele acha que eu vou chamar acho que eu vou chamar ele de psql ou DB alguma coisa assim mas na próxima aula a gente faz isso juntos Então pessoal que que a gente fez anteriormente aqui a gente criou um dockerfile docker gnor né para ignorar coisas e um dockerfile tô falando só do docker em cine o docker file ele é utilizado para que a gente gere uma imagem ao nosso gosto Então a gente
usa como base aqui a imagem do Python 3.11 com Linux Alpine 3.18 E aí a gente executa várias coisas que eu já te falei sobre cada uma delas aqui para gerar essa imagem Isso aqui vai ser Bill dado construído uma vez só Aliás toda vez que você alterar esse arquivo aqui dockerfile você tem que beldade de novo o seu container Ok então se você vier aqui alterar alguma coisa você vai ter que beldar novamente pronto sabendo disso O que que a gente vai fazer agora a gente vai criar um arquivo todos esses arquivos precisam ter
os nomes que eu estou focando aqui OK não muda nada porque se você mudar o nome de qualquer coisa aqui pode ser que você tenha problemas lá na frente quando a gente for lá para o servidor por exemplo fazer Deploy então aqui ó eu vou criar um arquivo chamado de docker traço com pouse.senhor tá docker traço compôs.yml que que é esse arquivo o que que é o dockerfile dockerfile Gera a nossa imagem Então a gente vai bildar construir uma imagem com essa configuração aqui essa imagem é o Jungle em si só que para trabalhar com
Jungle eu preciso também de ter uma base de dados aqui dentro então eu quero ter a base de dados já que eu tô trabalhando com docker eu quero também ter abaixo de dados do post Green dentro do docker então o que que eu vou fazer eu vou criar um container do Django deixa eu copiar e te explicando aqui vou copiar aqui vou colar você vai ter acesso a esse aqui Deixa eu te explicar cada coisa aqui eu tô criando um docker compose na versão 3.9 então é basicamente a versão do docker composto que eu vou
utilizar e aqui eu tô criando Services Services vão ser os containers que eu vou gerar aqui dentro do docker com pouso ponto Y ml o primeiro service vai ser vai ser este contêiner aqui que vai se chamar Jungle app então eu coloquei que o nome do Servers chamado de Jungle app e um container name de Jungle app eu gosto de colocar assim mesmo nome nem precisaria de ter um nome que isso aqui tá aí ele iria utilizar o nome do server-se para ser o nome do container mas aqui a gente tem aqui tá tá lá
o nosso Jungle app sendo criado esse build vai explicar na onde testamos arquivos para buildar esta esse Jungle app que porque este jangoo app ele não é vai ser só uma imagem do Python 3.11 é o pai então ele vai ter todas essas configurações que eu fiz aqui então ele precisa desse comando Build para falar para ele onde que tá esse arquivo docker Fire não precisaria disso aqui tá eu coloquei só para você saber mesmo Mas eu não precisaria se eu falar o contexto é ponto aonde está o meu arquivo docker compose.y ml ele vai
buscar um dockerfile automaticamente então não precisaria daquele ali vou deixar ali só para você saber que é nessa é aliás a gente pode tirar Porque quanto mais coisa a gente colocar aqui mais problema a gente pode ter mas saiba que você pode informar o caminho do docker file aqui também então vou colar de novo ali Vou tirar isso aqui o mapeamento de portas lembra que no nosso docker Fire a gente expõe a porta sumiu isso é importante porque porque agora toda o mapeamento de porta aqui vai falar o seguinte toda vez que eu tentar acessar
a porta 8000 no meu host Quem que é o meu rosto este computador aqui ele vai redirecionar para a porta 8000 dentro do container que vai ser a porta onde o Jungle vai estar expondo o seu o nosso servidor aqui provavelmente a gente vai ter que alterar coisas aqui quando a gente biodá tá então já fica preparado que a gente talvez vai voltar mudando coisas aqui então mapeamento de portas mapeamento de volumes que que esse mapeamento de volume faz ele pega o volume Jungle app lá dentro do container e mapeia para o mesmo volume aqui
dentro do meu do meu computador isso vai fazer com Inclusive eu já tinha gerado aqui eu vou até tirar essa pasta aqui esse aqui foi gerado porque eu já testei isso antes tá então você não vai ter essa pasta data aí mas o que que vai acontecer quando eu editar alguma coisa aqui em Jango web que é esse volume aqui ó de Angola é tá vendo ele vai refletir isso lá dentro do container então seus editar um arquivo aqui dentro desse Jungle app por exemplo require ou qualquer outro ele vai mover essa coisa para dentro
do container automaticamente eu vou conseguir ver essas alterações enquanto eu tiver com container up então o mapeamento volume é basicamente isso aqui esses dois de baixo não eram necessários Ok start que em média não são necessários poderia até remover eles aqui mas eu coloquei porque eu gosto de ver aqui os arquivos estáticos aqui dentro aqui para só até para eu saber se eu tô redimensionando uma imagem se ela tá vindo para cá com o nome correto enfim qualquer coisa então eu gosto de deixar isso aqui mas isso aqui vai criar uma pasta aqui dentro chamada
de data que vai ter os arquivos estáticos você fizer upload de algum arquivo para dentro trainer ele vai vir para dentro seu projeto também E aí você tem que ignorar ele aqui no seu Git gnor como eu tô fazendo aqui tô ignorando toda a pasta data aqui de dentro do meu gift pronto então esses são volumes mapeamento de volumes aqui está o Andy Fire que que é o ever Fire o arquivo ponto Henry que a gente criou aqui a gente usa não o exemplo é claro o original então aqui ó dentro de daten files eu
tenho isso aqui como eu te falei antes não altera o nome das variáveis porque eu vou te explicar já já o motivo disso aqui porque a gente usa alguma dessas variáveis lá na imagem e aí como o docker que vai carregar esse Dote em para a gente isso vai fazer com que quando eu subir a minha imagem né Ele carrega esse Dote em lá dentro do Meu Container eu tenho acesso a essas variáveis aqui e aí tendo acesso a essas variáveis quer dizer que o meu se pai também tem acesso a esse ponto getive o
nome da variável por isso que eu posso usar esse arquivo aqui para trabalhar com variáveis de ambiente voltando aqui a gente tem mais um serviço aqui dentro porque por que que eu tô utilizando o docker com pouse porque eu quero dois containers Eu quero um container Jungle app que é a minha aplicação Jungle mas eu quero um outro container com post Grey Então vou colar aqui para você ver então eu tenho outro serviço aqui chamado de psql container psql com a imagem do post Green 13 all time E aí eu mapei o volume também de
onde estamos dados do post-bsql para dentro do meu projeto aqui porque se eu apagar essa pasta do post Green aqui eu apago toda a base de dados eu tenho que começar do zero a configuração do meu computador e eu vou utilizar o mesmo em refail nessa imagem aqui mas por que que essa imagem não tem dockerfile lembra que que eu falei docker file é usado para buildar para construir uma imagem ao seu gosto como o post Green já está construído já existe uma imagem aqui eu não preciso disso aqui build contect dockerfile enfim só preciso
da imagem que já existe lá e aí esse ponto em vice a gente for aqui no post Grey a que eu tava olhando agora mesmo se você olhar na oficial imagem do post Green que a imagem que a gente tá usando ele já cria base de dados já cria usuário já cria o senha e já coloca o esse usuário com permissões na base de dados através das variáveis de ambiente chamado de power DB post Will password então você pode ler sobre isso aqui é só você pesquisar lá no docker Hub pelo post Grace então o
que que acontece por isso que eu falei não altera o nome das variáveis aqui porque SW estão sendo usadas tanto no meu séries ponto pai que aqui eu poderia mudar o nome tranquilamente né só que aqui eu não tenho acesso a isso então no docker com pouso é uma configuração que já vem na imagem por isso tem que ser esses nomes que eu coloquei aqui beleza e eu tô utilizando muita gente gosta de utilizar um ponto AMV para cada container é uma boa prática mas para facilitar a nossa vida no Deploy quando a gente for
fazer lá no servidor eu tô utilizando o mesmo dot envie tanto aqui né no docker eu vou utilizar isso lá no servidor e no séries também então todas as variáveis de ambiente que eu deveria ir definir aqui no meu dot envie vão estar disponíveis em todos os containers aqui agora eu preciso comunicar Jungle app com psql não preciso então alguém tem que depender de alguém aqui então eu acho que eu acho é o Jungle é quem Ok porque porque o Jungle precisa que o psql né O que é o posto SQL esteja funcionando já já
tenha subido a imagem para que ele consiga trabalhar então eu tenho que colocar uma diretiva aqui no meu Jungle falando que o Jungle depende on Depende de quem Depende do psql que é esse serviço abaixo aqui beleza então pronto feito isso aqui que que a gente vai ter agora a gente vai ter que bildar a nossa imagem Então como é que a gente faz isso Ó primeiro docker tentativo tá não tem nenhum container aqui no docker ainda E aí depois do Doca ativo você estando lá na pasta Onde está o dockerfile e o docker composto
ponto Y ml Você pode falar docker compôs docker traço com pose up E aí na primeira vez tá você faz menos menos Build E aí vamos executar isso aqui e aí você vai ver eu já executei isso aqui antes eu já vi alguns errinhos aqui que eu vou te mostrar já já então você vai ver que ele vai baixar a nossa imagem do post Guy depois ele vai marchar baixar a imagem do pai tão lá ao pai e ele vai começar a fazer a build né montar a nossa imagem aqui então tá vendo ele tá
executando tudo aqui ó tudo que a gente colocou lá no nosso dockerfile ele tá executando agora ele tá fazendo lá né que é pai também menos cria um ambiente virtual e é isso aqui eu já tinha visto antes que ia acontecer tá então dá um control c aqui e aí você vai perceber o seguinte é Eu Já alterei aqui lá ó eu vou te mostrar aqui na onde que tava errado pra você alterar aí também aqui dentro do meu da TIM eu acabei esquecendo e deixei aqui como post rest como o local host tá esse
post Green host aqui ó local roxo ok que que acontece disse aqui esse local roxo vai ser interessante pra gente lá no servidor mas não é interessante aqui para gente no docker porque o meu docker compose ele faz essa comunicação aqui para gente né então como a gente tá executando o docker compose dentro é o a gente tá puxando as variáveis de ambiente do arquivo Henry e a gente tá comunicando aqui o Jungle app com o Bolt GR o que que acontece aqui qual que é o host name que eu uso para acessar esses containers
é o próprio nome do container então psql é o host name que eu utilizo para acessar esse contêiner aqui nesse contexto aqui dos nossos container containers Qual que é o roxo negro que eu utilizo para acessar o Jungle Jungle app Ok então lá dentro do nosso dot envie que tava antes lá no post boca roxa eu vou mudar para o nome do container lá que é psql e voltando aqui do altar aqui só para garantir é esse nome aqui mesmo psql então lá no dot AMV nesse momento o nosso post Grace host é o nome
do container que eu quero acessar Ok deixa eu apagar tudo aqui ó e começa a do zero eu tenho os comandos aqui docker remove ao esses comandos não existem no docker tá então se você quiser ver eles aqui é barra aliás eu tenho vários comandos aqui então deixa eu te mostrar aqui que é o seguinte tentar esse comando aqui é esse aqui ó esse docker stopal ele faz isso aqui nossa é um comando enorme isso aqui isso aqui eu peguei na internet também de algum lugar está com overflow alguma coisa assim mas ele apaga os
meus containers todos aqui então eu apago tudo isso aqui se você quiser fazer na mão até daria mas eu acho mais rápido fazer assim então agora eu apaguei mas se eu fizer um docker PS menos Ah eu não tenho nenhum container que também não não tenho nenhum container aqui então vamos lá docker compôs up menos menos build e você pode fazer um menos menos Force recreate para ele recriar esse container Toda vez que você alterar tanto o dot envie como o docker composto com o docker file Toda vez que você fizer alguma alteração aqui eu
acho que é só o docker Fire se eu não me engano mas toda vez que você alterar alguma coisa rebelda a imagem tá tô falando aqui só docker docker compose e variáveis de ambiente agora quando você tiver trabalhando aqui no projeto não precisa rebiltar tá então aqui eu vou fazer um review aqui então Build for Create e ele vai bildar esse projeto aqui de novo e aí a gente vai aguardar ele vai baixar as imagens de novo que eu tenho aquele comando para apagar tudo E aí na hora que chegar ali lá no nosso watch
post e a gente vai ver o que que acontecendo ali ó deixa eu ver aqui qual que é o outro problema que eu tinha visto antes aqui então lá no nosso comandos scripts commands tem um negócio aqui que eu já vou te mostrar aqui ó então ó já foi um problema e tem outro aqui que é o seguinte ó tá vendo que ele tá executando várias milhares de vezes aqui ó Waiting Force que poderia travar o computador tá vendo ó é muita coisa que ele tá executando aqui mas vamos voltar lá e vamos fazer o
seguinte é ele executado isso aqui porque no final não tinha percebido eu deixei um e Comercial aqui no final Então tira esse erro comercial daqui e aumenta o tempo aqui colocam 5 segundos ou dois segundos por exemplo aqui nesses Lipe então no nosso comandos.sh outra coisa ele gerou um transtorno aqui ó porque se você perceber ele tá no collect start que ele tá ele tá te perguntando uma coisa aqui isso gerou esse problema que a gente não quer que ele pergunte nada aqui para a gente a gente quer que ele Execute os comandos em sequência
sem parar Então aqui na frente do collect start que eu vou colocar no input e aqui na frente do My great eu vou colocar no input Inclusive eu vou colocar antes do My greate aqui eu vou colocar make my grahams também já faz as migrações toda vez que eu subi andando toda vez que eu depois que eu Bill dorme imagem ele vai executar isso que tudo mas toda vez que eu subir ela depois que eu me odeia ela que é um processo bem similar isso aqui mas ele não tem que fazer toda essa build ele
vai fazer collect estático my great e Run server Ok e outra coisa também o Ram server precisa de um IP que é 0.0.0.0 dois pontos 8 mil Ok porque eu tenho que informar agora que eu quero que ele aceite conexões de outros e pensa aquilo 0 porque o padrão ele vim com 127.0.0 127.0.0.1 né E aí na porta 8000 Esse é o padrão Mas por que que isso não funciona porque 127.0.0.1 aponta para dentro do container é o próprio container e já não quer isso a gente quer acessar o nosso servidor E aí o nosso
servidor vai o nosso computador né o host que a gente ama e o nosso roxo vai mapear a nossa chamada para dentro da porta é 8 mil lá do container por isso que a gente precisa informar esse IP aqui Inicial Então vamos executar de novo docker compose up menos menos build e a gente vai humildade de novo aqui agora ele já baixou as imagens Então deve ser mais rápido então vamos só aguardar para ele terminar esse processo de Build para a gente ver se vai tudo funcionar bonitinho então subir o nosso psql Olha que interessante
Ó você viu que agora ele aguardou lá em cima aqui ele falou waiting for que eu tirei que ele ia comercial lá e aí ele começou a fazer coisas aqui mas só aqui embaixo ele falou post Grid Database success falling started e é o nosso host e a nossa porta e ele fala 125 com arquivos estáticos foram copiados para Barra data/web/estatic nada alterado E aí a play my greations acho que ele já tinha aplicado na build anterior que eu tinha feito então aplay my greations ele migrou tudo ali deixa eu só te mostrar se você
tiver com vontade de começar do zero e não conseguia executar aquele comando eu vou te mostrar como fazer isso aqui agora então o que que a gente tem que fazer vamos lá vamos Observar isso aqui eu vou fazer devagarzinho aqui para ficar fácil ó docker PS Menos a e aí você vai ver quais containers existem aí no seu docker você poderia fazer isso por aqui também tá vou te mostrar pelos comandos aqui é só você vir aqui apagar as aqui né com o íconezinho ali mas vamos lá que que eu quero fazer docker PS -
a eu vou ver os containers que eu tenho eu vou pagar utilizando o container aqui tá deixa eu tentar aumentar porque eu tô com bastante zoom aqui na tela tentar agora sim agora eu acho que vai dar vou aumentar mais ainda ó você vê numa linha só porque tem muita informação aqui aí ó Então você vai ver contém nerd do seu container e qual que é a imagem qual enfim todas as coisas ali então o que eu quero fazer docker é RM E aí eu vou passar o que que eu quero apagar pelas três primeiras
letras aqui do continente Então 6 é b e 8 aa e eu apaguei essas duas coisas aqui então docker PS menos a Então tá lá apaguei os containers Agora eu quero fazer o seguinte se você quiser isso aqui tá mas docker image pls para listar as imagens que você tem e aí você poderia vir aqui e apagar as imagens também da mesma maneira então docker image ou rmi ou aliás o docker image RM para apagar a imagem e você passaria usar dias das imagens ou docker rmi e aí você passaria também o zaid das imagens
Então 6 F5 eu quero apagar a dois um F e A4 C8 E aí apaguei as imagens então docker image LS não tenho mais imagens docker container PS você poderia como eu te falei fazer tudo isso que eu te mostrei pela interface aqui então você pagaria as interfaces aqui inclusive ela tem vários volumes ali ó eu quero apagar todos não vou fazer aqui pela interface só para você ver E aí daria começando do zero apaga os containers as imagens e tudo isso aqui agora se eu voltar e tentar executar deixa eu tentar voltar o meu
terminal normal aqui e tentar executar lá ao docker traço compôs up menos menos Build a gente agora faria tudo de novo tá vendo que ele tá baixando a imagem do post Green enfim e aí tudo tudo de novo aqui só pra gente ver que ele tá fazendo isso aqui tudo do zero Então agora eu vou aguardar isso aqui só ver se tá tudo funcionando junto com você no final ali então ó terminado aqui tudo que a gente fez aqui agora que que a gente quer simplesmente Acessar agora se eu clicar nesse endereço eu vou conseguir
acessar acho que não né porque a gente não colocou lá no nosso aloud hosts esse P aqui então tá vendo ó você precisa colocar 0.0.0 no alok hosts Mas não tem problema porque a gente pode acessar esse P Por 127.0.0.1 que está lá no nosso local roxo então vivendo nada aqui porque a gente configurou lá tá vendo o nosso o nosso ó deixa eu te mostrar o porquê que você tá vendo aquilo ali a gente configurou nossas urls aqui e a partir do momento que você configura o rls o Jungle passa não exibir mais aquela
página inicial Então deixa eu comentar isso aqui só para você ver voltando lá atualizando agora ele passa a funcionar então é basicamente por isso que a gente tava vendo aquele erro ali eu vou deixar assim porque a gente agora vai configurar as nossas coisas ali então a gente vai precisar disso a gente vai ficar vendo isso aqui agora tem mais coisas pra gente fazer nossa tem demais tem muita coisa pra gente fazer ainda porque agora que a gente terminou de subir o nosso aplicação com o docker Nossa aplicação Jungle com o docker em si então
só queria que você observasse aqui aqui provavelmente foi criada aí uma pasta data no seu projeto essa pasta não deve ir para o github e essa pasta tem os dados do post Green e tem os estáticos e média da sua aplicação então você vê que no start que aqui já tem a pasta admin do Jungle que já vem por padrão mas na média não deve ter nada agora se eu apago essa pasta ele vai recriar tudo do zero lembra a gente já bildou essas coisas aqui eu tô só te mostrando aqui nua antes do que
a gente quer aqui não control c para parar que o Meu Container eu vou voltar aqui vou apagar essa pasta você vai ver que ele vai ter que fazer as migrações tudo de novo vai fazer collect start que tudo de novo então vou apagar esse aqui paguei a pasta então quando eu executar isso aqui docker composto up menos menos build você vai ver que ele vai fazer tudo de novo olha lá ele tá criando a pasta do post Grill esperando para ele subir aí ele vai terminar de subir já já ó esperando ainda para ele
terminar de subir continua esperando aí ele subiu acho que ele subiu não subiu ainda agora sim ele terminou de subir agora ele tá aplicando as m todas tá vendo e aí sim ele subiu o nosso projeto Jungle beleza terminei de fazer tudo aqui né Toda vez que eu fizer algum alguma alteração no docker com pouso ou no docker File ou no dot envie Toda vez que você mudar isso aqui recomendo que você Bill de novo para você ver essas alterações tá então só a recomendação mesmo vai lá e builda de novo o projeto utilizando esse
mesmo comando docker composto up build porque que é só quando você alterar esses arquivos que a gente vai fazer a build porque essa build demora Está vendo que ela demora bastante para fazer a biodente inteira e voltar a sua começar a sua aplicação quando você terminou não alterei nada toda vez que você parar seu servidor né com control c aqui você pode vir aqui e fazer o seguinte toca composto sem o build só docker composto up E aí ele só vai subir a sua Jungle de forma muito mais rápida do que simplesmente fazer a build
toda de novo você vê que já tá up que meu servidor então é basicamente isso parei que control c eu posso executar isso aqui também de forma de Ou seja eu não quero ficar vendo esse aqui nessa coisa aqui na tela eu quero usar o terminal para outra coisa então eu coloco docker composto up menos D E aí ele vai executar só que você não tá vendo nada aqui tá vendo ele tá executando lá o Meu Container Se você olhar aqui no docker Meu Container tá up tá com Play ali tá vendo mas ele ele
continua ele não fica travando o meu terminal então posso executar essas coisas por exemplo docker com pose up sobe container menos de some com aquela tela docker compôs dá um desliga o container Beleza então se você quiser ligar ou desligar o container subir ou desligar né colocar para Down você pode fazer isso aqui e aí ele já termina ali o seu container docker compôs up -d deixa ele ali e aí você tá com o projeto pronto eu gosto eu gosto bastante de ver os logs Então minha câmera até desligou ali mas eu gosto bastante de
ver os logs aqui tá então eu vou trabalhar assim ó sem o menos D então docker compôs dá um e eu vou trabalhar assim ó porque assim eu consigo ver os prints ali então vou esperar ele terminar ali o container E aí docker compôs up simples assim porque aí eu vou ficar vendo aqui os Logos eu não preciso ficar acessando nada se eu dar um print lá dentro meu Django eu vou ver isso aqui tá E aí eu abro outra aba do terminal aqui e trabalho nessa outra aba aqui beleza então basicamente isso para essa
aula agora pessoal alguns comandos úteis que você pode querer utilizar aí porque agora como é que eu executo comandos aqui na minha aplicação Que Eu Já criei né Eu Já criei mas ela ficou defeituosa aqui né ela não tá abrindo nada então eu vou com você só criar um app aqui e mostrar alguma coisa na tela para você ver isso aqui em funcionamento Então como que eu criaria um app no Jungle dentro do container eu posso executar docker compose Run E aí eu falo o nome do meu app que eu quero usar aqui por exemplo
o meu App lá que eu quero utilizar agora chamado de Jungle app né então é esse App aqui que eu tô utilizando então Jungle app E aí eu posso executar alguma coisa por exemplo Python Man de ponto pai Start Up blog Suponha que eu queira criar um app chamado de blog para falar do meu blog Isso vai ser executado dentro do container e quando você voltar aqui no seu sistema você vai perceber que alguma coisa foi adicionada ali ou seja agora eu tenho um novo app aqui e aí que que a gente pode fazer agora
a gente pode criar uma View vou criar uma View aqui rapidinho desce aliás Vamos criar o template primeiro para a gente mostrar alguma coisa na tela então se eu fosse criar um template que New Folder templates dentro desse app Eu costumo utilizar o próprio nome do app aqui como name Space então tô criando blog/ um exemplo index.html E aí aqui dentro desse index.html eu vou colocar um HTML qualquer vou colocar meu blog e aqui eu vou colocar um H1 meu blog E aí eu quero renderizar isso aqui lá na tela como é que eu faço
agora eu preciso de uma viu então minha viu vai ser o seguinte eu entrei em testes aqui que não tem nada a ver então minhas views vai ser o seguinte deve vou chamar de index aqui e aí a minha viu recebe a request aqui como padrão e eu vou retornar um render renderizando lá o nosso template vai ser o seguinte barra blog não preciso do Barra Inicial né Eu só preciso do name Space aqui que seria blog index.html Olá blog Barra index.html e eu preciso passar no primeiro parâmetro aqui a orquest Então pronto agora eu
tô renderizando isso aqui mas não vai funcionar ainda porque eu tenho que criar o rls desse blog aqui enfim tem que fazer várias coisas aqui ainda mas a gente já tem avio então se eu fosse criar vamos lá vamos criar tudo então né já que a gente já tá com a mão na massa se eu fosse criar em um arquivo de urls ponto pai aqui dentro Eu vou pegar o clone aqui do meu projeto URL só para eu ter ele aqui e vou colar aqui eu preciso dos importes também vou copiar esses importes aqui depois
eu apago que eu não precisar para ir mais rapidinho aqui então Ó lá tá lá meu App E aí eu vou tirar isso aqui porque eu não preciso disso aqui eu vou tirar esse trechinho aqui e aqui eu costumo colocar um name Space Happy name sendo blog porque agora mesmo urls vão ter esse name Space aqui de blog isso aqui eu não estou utilizando aqui dentro e o admin também eu não vou utilizar aqui dentro então vou apagar esse admin aqui e aí agora no PES que que eu vou colocar aqui a minha viu então
from blog ponto views Import index E aí aqui eu vou passar a minha viu que a gente criou lá o index e vou dar um nome aqui para essa url que vai ser basicamente blog ou index né E aí com esse name Space que meu URL vai ficar assim um exemplo aqui para você vai ficar assim blog dois pontos index e esse vai ser o reverso Quando eu for buscar o URL reversa vai ficar blogue dois pontos index e aqui eu vou deixar vazio mesmo porque eu vou deixar o index na home mesmo só que
agora aqui que eu preciso fazer eu preciso de vir no meu URL no principal né eu preciso duplicar isso aqui e aí eu vou importar um include aqui dentro e aí aqui eu vou colocar vazio porque eu quero a home aqui e aqui no segundo parâmetro eu vou dar um iCloud o meu blog ponto url que foi o arquivo que eu acabei de criar ali então agora eu já tô incluindo ali só que deixa eu ver se vai renderizar alguma coisa ali já deixa atualizar ó template das not Exit aqui porque eu não tenho isso
registrado em Apps lá do Django então o que que eu vou fazer agora eu tenho que registrar Esse app que eu criei aqui o blog lá nos Apps do Junco Então quem é pessoal Se você olhar o nome do seu app ó tá vendo a classe aqui ó blog config o name dela é blog Então é isso aqui que eu tenho que registrar lá no meu séries quando o pai install apps Então quem está apps eu vou colocar o meu blog E eu vou deixar uma vírgula sempre sobrando ali para que eu possa duplicar isso
aqui várias vezes por preguiça então aqui agora atualizando Você tá vendo que a gente já tá renderizando aqui o meu blog E aí se você tivesse um Model se você tivesse qualquer coisa ali precisar fazer algum comando de my greating alguma coisa assim se a Faria da seguinte maneira docker compose Run o nome do seu app de angoep Python manage ponto pai daí um exemplo make my greations E aí ele vai executar my great ele vai executar collect start que se você precisar fazer collect start vamos fazer uma coisa juntos aqui ó só para você
entender também aqui ele tá me perguntando se eu quero ou não fazer coletar os estáticos né porque eu posso substituir arquivos lá do meu dos meus estáticos que eu já tô fazendo isso mas tem aquele esquema também né quando eu paro que minha aplicação do docker quando eu subir ela essas coisas vão ser executadas porque eu já deixei lá naquele comandos que a gente fez anteriormente tá lá naquele arquivo scripts commands esse arquivo aqui ele vai ser executado toda vez que eu iniciar minha aplicação então se eu fizer docker compose up você vai ver que
ele vai fazer essas coisas para mim ele vai fazer o collect start que vai fazer as my greations E aí ele vai subir o meu server Então não preciso me preocupar em fazer essas coisas aqui mas eu tô te mostrando isso para você caso você queira executar algum comando lá dentro do seu servidor por exemplo uma coisa que a gente não fez foi criar o super user para a gente acessar a barra admin aqui do Django né então não tem usuário aqui então para eu fazer spay também docker composto round Jungle Apple super user e
daí você cria lá o seu usuário Luiz Otávio por exemplo e-mail senha vou colocar uma senha fraca aqui para ir rapidão vou confirmar então coloquei um dois três quatro cinco seis por isso que ele reclamou ali comigo então agora eu posso acessar ali Luiz Otávio um três quatro cinco seis e aí acessando eu tô na área administrativa do Jungle sem é muito fraca mesmo até o Chrome que tá reclamando clamando disso mas é basicamente isso aqui agora se você por algum motivo precisa acessar o container Você pode falar docker compose aliás somente docker docker ezek
menos i t Jungle nome do seu aplicativo é E aí eu quero acessar o Shell s h dentro daquele lá e aí eu já tô dentro lá do Meu Container se você observar aqui ó eu tenho lá o blog o manual de ponto Pipe projectx são os arquivos que eu tô realmente copiando daqui mas cadê meu ambiente virtual lembra que a gente usa o work Girl para que ele Entre Nessa pasta de Anglo app então se eu sair aqui é um LS você vai ver que eu tenho uma pasta vem ver aqui ó que é
essa pastinha aqui então meu pai tão aqui dentro ó pai tão menos ver é o Python que tá vindo dessa pastinha vem porque a gente configurou o pé então você vai ver que é Barbie que é o nosso ambiente virtual que a gente criou aqui então pessoal é basicamente isso que a gente precisa para a gente trabalhar com Jungle aqui em ambiente de desenvolvimento como eu já te falei se você curtir comentar o vídeo pedir isso solicitar que a gente faça outro vídeo a gente faz um outro vídeo mostrando como jogar isso para dentro do
Servidor mas nesse momento acho que a gente já falou demais né a gente já deve estar com umas duas horas de vídeo aqui então é isso para esse vídeo eu te vejo no próximo e grande abraço
Related Videos
Docker do zero: dockerizando uma aplicação Python e Django | py_live #007
1:43:25
Docker do zero: dockerizando uma aplicação...
PycodeBR
10,730 views
Configurando Docker Compose, Postgres, com Testes de Carga - Parte Final da Rinha de Backend
1:35:44
Configurando Docker Compose, Postgres, com...
Fabio Akita
108,030 views
Deploy de uma aplicação Django com NGINX e Gunicorn
48:26
Deploy de uma aplicação Django com NGINX e...
Otávio Miranda
19,093 views
Hungary Prime Minister Viktor Orban on USAID, Trump, Immigration, NATO, and the Russia/Ukraine War
1:01:06
Hungary Prime Minister Viktor Orban on USA...
Tucker Carlson
793,476 views
Postgres e PGAdmin diretamente pelo Docker
17:59
Postgres e PGAdmin diretamente pelo Docker
Prof. Diego Pinho - Programação
18,674 views
APRENDA DOCKER DO ZERO | TUTORIAL COMPLETO COM DEPLOY
44:15
APRENDA DOCKER DO ZERO | TUTORIAL COMPLETO...
Fernanda Kipper | Dev
168,797 views
Build and run Django in Docker in 10 minutes (+ bonus tips)
16:27
Build and run Django in Docker in 10 minut...
Adam La Morre
14,709 views
C can do this too and it's faster than Python
2:09:48
C can do this too and it's faster than Python
Tsoding Daily
41,897 views
Ikrimah ibn Abi Jahl (ra): The Pious Son of Pharoah | The Firsts | Sahaba | Dr. Omar Suleiman
52:24
Ikrimah ibn Abi Jahl (ra): The Pious Son o...
Yaqeen Institute
309,483 views
A combinação que todo dev back-end precisa saber (Postgres + Docker)
9:23
A combinação que todo dev back-end precisa...
Rocketseat
55,502 views
LULA PODE CAIR, TRUMP DOIDÃO E BOLSA EM ALTA
17:11
LULA PODE CAIR, TRUMP DOIDÃO E BOLSA EM ALTA
Investidor Sardinha l Raul Sena
70,165 views
How to Start Coding | Programming for Beginners | Learn Coding | Intellipaat
33:08
How to Start Coding | Programming for Begi...
Intellipaat
9,529,465 views
Como usar corretamente o Docker Compose | #HandsOnDevOps
1:17:13
Como usar corretamente o Docker Compose | ...
Fabricio Veronez
12,007 views
Docker SUPER AULA com TUDO que você precisa saber HOJE!
1:32:00
Docker SUPER AULA com TUDO que você precis...
Ayrton Teshima - Programador a Bordo
31,833 views
The Most Useful Thing AI Has Ever Done
24:52
The Most Useful Thing AI Has Ever Done
Veritasium
5,302,216 views
H.D. Hartmann, despre mesajul lui Vance: "E un semnal FOARTE DUR al administrației lui Trump!"
23:19
H.D. Hartmann, despre mesajul lui Vance: "...
Gândul
153,084 views
Docker Compose: O guia definitvo
1:22:20
Docker Compose: O guia definitvo
Fabricio Veronez
37,258 views
Subindo Aplicações Web em Produção | Aprendendo HEROKU
41:32
Subindo Aplicações Web em Produção | Apren...
Fabio Akita
138,467 views
LARAVEL SAIL 🐋 (DOCKER): COMO SUBIR O AMBIENTE DE DESENVOLVIMENTO 😲😲 (passo a passo)
1:18:15
LARAVEL SAIL 🐋 (DOCKER): COMO SUBIR O AMB...
Rafael Lunardelli · Pinguim do Laravel
12,690 views
GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with Docker
32:31
GitHub Actions Tutorial - Basic Concepts a...
TechWorld with Nana
1,673,963 views
Copyright © 2025. Made with ♥ in London by YTScribe.com