From 44cfa49455aac4c3fac5c922e0f63b3472fe42ee Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Sun, 13 Apr 2025 21:50:47 -0300 Subject: [PATCH] docker: criado docker-compose com o django_app e o nginx_server como proxy reverso e servindo statics files em um volume compartilhado --- .dockerignore | 3 +- .gitignore | 1 + Dockerfile | 9 +- NginxServer/Dockerfile | 7 ++ NginxServer/nginx.conf | 21 +++++ docker-compose.yml | 39 +++++++++ .../__pycache__/views.cpython-312.pyc | Bin 9482 -> 9798 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 1283 -> 1420 bytes .../__pycache__/settings.cpython-312.pyc | Bin 3910 -> 3927 bytes gestaoRaul/gestaoRaul/settings.py | 3 + gestaoRaul/requirements.txt | 79 ------------------ requirements.txt | Bin 558 -> 310 bytes 12 files changed, 81 insertions(+), 81 deletions(-) create mode 100644 NginxServer/Dockerfile create mode 100644 NginxServer/nginx.conf create mode 100644 docker-compose.yml delete mode 100644 gestaoRaul/requirements.txt diff --git a/.dockerignore b/.dockerignore index fd27f2f..f68b57c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,3 @@ dev_env -execu.bat \ No newline at end of file +execu.bat +NginxServer diff --git a/.gitignore b/.gitignore index aa8afed..dbdbcdc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dev_env/lib/python3.12/site-packages/PIL/__pycache__/XVThumbImagePlugin.cpython-312.pyc dev_env dev_home +gestaoRaul/static \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index a45588f..d3eb6e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,11 @@ RUN pip install --no-cache-dir -r requirements.txt COPY . . -CMD [ "python", "gestaoRaul/manage.py", "runserver", "0.0.0.0:8000" ] \ No newline at end of file +RUN python gestaoRaul/manage.py collectstatic --noinput + +WORKDIR /app/gestaoRaul + + + +CMD [ "gunicorn", "gestaoRaul.wsgi:application", "--bind", "0.0.0.0:8000" ] + \ No newline at end of file diff --git a/NginxServer/Dockerfile b/NginxServer/Dockerfile new file mode 100644 index 0000000..482e846 --- /dev/null +++ b/NginxServer/Dockerfile @@ -0,0 +1,7 @@ +FROM nginx:latest + +# Remover a configuração padrão +RUN rm /etc/nginx/conf.d/default.conf + +# Copiar sua configuração personalizada +COPY nginx.conf /etc/nginx/conf.d/ \ No newline at end of file diff --git a/NginxServer/nginx.conf b/NginxServer/nginx.conf new file mode 100644 index 0000000..511da2f --- /dev/null +++ b/NginxServer/nginx.conf @@ -0,0 +1,21 @@ + +upstream django_upstream { + server django_app:8000; +} + +server { + listen 80; + server_name rrbec.local.com; + + location /static/ { + alias /app/gestaoRaul/static/; + } + + location / { + proxy_pass http://django_upstream; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9ddfa3b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +#version: '3.8' + +services: + django_app: + build: + context: ./ #django_app # Caminho para o Dockerfile da sua aplicação Django + dockerfile: Dockerfile + ports: + - "8000:8000" + volumes: + - static_volume:/app/gestaoRaul/static # Volume para persistir os arquivos estáticos (opcional) + environment: + # Suas variáveis de ambiente do Django + DEBUG: "False" + ALLOWED_HOSTS: "rrbec.local.com, 0.0.0.0, django_app*" # Adicione seu nome de domínio + # depends_on: + # - nginx_server + networks: + - app_network + + nginx_server: + build: + context: ./NginxServer # Caminho para a pasta com o Dockerfile do Nginx e nginx.conf + dockerfile: Dockerfile + volumes: + - static_volume:/app/gestaoRaul/static + ports: + - "80:80" + depends_on: + - django_app + networks: + - app_network + +volumes: + static_volume: # Define o volume para os arquivos estáticos + +networks: + app_network: + driver: bridge \ No newline at end of file diff --git a/gestaoRaul/comandas/__pycache__/views.cpython-312.pyc b/gestaoRaul/comandas/__pycache__/views.cpython-312.pyc index 1e72bd240d1b1a53dfd968d73e57cd73dbf2e968..e79f5d95ab5f2a21ebd06b1ca33ab7802069a36a 100644 GIT binary patch delta 2552 zcmZuyYitx%6rS1H_w2jvmUg#g`&i1#!(c%Ws)#L*HnKcg1&4+*> zWB4JE2=yA$KvYcdL0S@%{?sUm(O`_)QWMOLKlnjH{9&Ro(S$#G&z;@vN}XiSo_o%@ z_nyah&b`?8&C8+hfc1J=M`Up?f7S&ncYZ(tNsK^6R1`vb9?a z=s_u{holf&d$h0~ks^9jin6s=i|I8|4dZ=UtzIY9G2XAm^?IqE@uIduZ;%=oAJ7{0 zgp^=>P)q7fQWMWPCOEZ83C)IQc<_zml*oB*#%4LGS&6DqC8kDBIF*|7PHCm%N$c7w z>(nxBU6r9ODw23P1D*QRWHtisRKGP^1 zRL!DMFjZ2!$Fhp$)j?IsBQQXW43K3*YLte^d1mZ#JsZrImP$ONV z1pZn$;Abq5nz@woH=b|9A@^P}3RR1q(sqZI^?< zH34B^KpIdpkPs!rspUIRInf}_Kox7!Z>#_QeH3p&w6JBdv(q^?mSt8r@~Ebb!B~( zL%#C4il5rW@j^J=C1%G0P_}iYY7p+RXsR0RkafCh%B%zOSLloY^qCX@qbAx+&&~*F z4^Bp&ng|f*{(b!e=p`yd5Ik}M=?20O#kzxm&IXAoQvmxw4KT>KY+UT2Jn_JlfQN&i z22hxgSXNfMn!y}WDG1B;Jk04F2V2b_D4FCQh_TCE7rO3?i3Kq+om~{yO!oZj5#K~_ zj9nR+9(a53#-Wb~KN!59-n5Y3^r^m>?z!u@m+ree{G;}*c0YS`A$xRwNL$S6^QT7d zWk-Jrx82ymeg^VA)0z6B@Qj0C6frSLF zqE~@H0y55}*zFboBNOrmA(!w=2bNWi_Xt%DfX!PRzE(3uU0GZE*mi}ucJ=P)*=IWw zwDbRe9^X8~lF2nFK|@ha9(PBTmu9iXx*AMN@OUkM+*3h~;TdrNJ5jDyB` zqE2C1QM!$SC3mxnRHV{VkK+0GN7Uyt^)Y9#mI^XFVi_64R}&rl2>v3G+)#k)M?e{2 z?jf1-#AoGoRZ%rdM$iGJkqcZu7L!d+L!ODCsRiT)&YxF?N)EFdn4mO7GH$dIA4*E$ z6l`bL0nz8~BtN5LVQ#$n8h?UKD3@7ODL- z^RcPBo_c~V(lrfd32w}tr2>LGv{BjM?SlhYO9_;#z$?ItUdGoHReeZ*CJgaO?qR6z zvVoP>PEQM6XEPo6z1E!$G%PQt9 zygVdi=ojRVL$f*jo95JYTuptp-gHL9sEpd0v~wnpb8ZtEl5)NVw*d@ui} Tz&X;tJAnNoj^Az1J7MF$Z)8)T delta 2340 zcmZuyU1%It6rS1Hoz3p-W`DBTY&M%@lQe0!w(%!YwGEXvttGW4u|LobXgb-M#7Sp% z)_Z58Eh!rzU|VTxxS~Zt5J4!dqQp1B`lJui2T>6Rq=Nb=Dn*1oi09ndY@+ePoIUq` z=id9BpL_Q6BbN@hei@HP1sER>{5khqcBM5ZzP7S;q%I1&pogp$JEBJHs2b&S*;4G7 z8nfeSoX^8ntDR62c2Z69d5e{@(`uUQ5v$G4s2Q$Dt#&)BX1T6d9d=I5aXn^r+Icn4 z^|;k#7u13%1O%g?ul$g!ck3x5si%#^Y*24o4yrvIX}y`aAtGTx&@;=z4PO=1-c4xx z2DG>d&2B*ZINGt{Z#ZJhCbVk6-e0@uV{3OL|}otb%~>{3sjH7(a5B!#PzW?3W*T1oQ4#CX1DP?vPVoaEUZ>FFp} zQKVOQ2Y(gCezr}1N@+!dE))f}B$s;nQ0+&t6@(Xa9apoaG*UJ-iwvKeY<0a9PwX$n27-R=Kp*$?^VV9KR>_fP{rRpC^ zy>QtwjfzYCOYwRDiKExRL6V1Qsl$^F9X#$ybB60lX2m5K1fO#ZwE_z62gZSPqlmL) ztWb}jiuLNXI7Bzd^vqe3#A&di*#>zORavW6jf&1a@xzxOJ-BZa#Up4EErYKWU7I%b zb(TCnoFLhYMp;hUb?CIMnRI#q&Xi5vq2zJ)Q7pInK|JjN6zD%qfGGZZ5FS@$!8BeN z^Y0@^z-s%d6n|apErMEZR5GZ75Q0yF@9s%heS>|N*bx`kO8va(hFGfY04rqs*i=iV zH*iyGVv>vT<6}`=loo~g7~7X@O9XG=aWKvY7lZQ&mWt#RQE)M)I9M^$F6%Nt8TM{+ za40-+E{0Lu*$B=(g&G!AOz7Vi0%~{ouvR#L!%0Eqo^cg`HgjeF?NB z;YTHXb@bxscS_e+O4qfCua*0jSUzn->0U_R7VF5FOrXG5Qi_tJsB_Zm6}L{Gvp{0x z7z!j_3a-=jD+P@xx`Qkm88&p&U88ssAoQMI5!g4G6`(TPeox$qRJ_m=#KVGhQ?)G_~;9~wcN!&4tM_31`aD9PZ~ zm2NeG&&9tHuQgZy>i$Fo-mATDigo^ML$qpWXS{%O=6Zmf1{+UuW@st0fdxFg|=hpVC4tr~0BwU2~L}`e9J8-b>CG~l&GUp7_=N#geYtVed0Q0hLV*1Rm z?La0ei6F*1YohV~=^Dg|V`KJO8?Ai}iQ{6Ts-3m5;jgV?=l1Gx9)RW|77Ca){s-1f zleikgHqbQ0PU5xC!GE3R9Mx*pux>z6YOVt@PXp%v1CF4E-IQQYAo%KdvHSG{x#fz=)&CAQh00bJ5-_k>wC-O-!s!dc^l4NdSh+?f|(PVuIlGJ3p#a@(JmReMt zIwq%i%S!WGC`twshXUVotVr7Sb-K5F$0NPtOZ4xc_ou;n2yzR0QtpzK;lOO!wr71 z{+iC386}tam2U`3O}Ck7b6wcrlCZ%Iak=R=6Kk%EYh4uAx-M>bQQUAtn#d=?Xf{z@$%r9^IfpfuEs8CdJ&K)?A%&%dA&R4t zRg>){NU|P-{G!B?{Gy3T`n;MEXJ zh+mL)+F)`?+G&T`MQNuCB2G`F4K5gZUY7Q{Ama5zLScdUWeLp-0-BTKSb~K)K(_G% ziJuJ&UzylBwLS<;KFVTa335)c0K^qvm^fL*KZr2!h+be3DUt*V`e}0B5>LrW%uCPL zD=o>)Db|CBz+^pES;<=hP|4zq{GyWN(vspLHlVg5_Q@WsN~#J#CMXn&g@MEeW=2NF Vy9_4x8JzDk=ziwlW)uZm0RX(WbFlyb diff --git a/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-312.pyc b/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-312.pyc index 3ac75c9207916e093ec0f4485f74462f9e67be1e..8e6edc91e40584e2a234fc89fb02b59338f0f6c4 100644 GIT binary patch delta 64 zcmX>mcU_M6G%qg~0}zPI{z<>Fk@q+=Bm3m5%t3-x{6$4csmXdd`N@enddc~@o7GvS Tak6s=ay9UNlG=QPw}}w|h3gb2 delta 46 zcmcaEcTA4=G%qg~0}yOc{+hmTBkyr$Mz+aUnS(Z4uuS7*XBXsZ;Qb`A`6_P{BLGx3 B4tW3o diff --git a/gestaoRaul/gestaoRaul/settings.py b/gestaoRaul/gestaoRaul/settings.py index 87dac86..29194c6 100644 --- a/gestaoRaul/gestaoRaul/settings.py +++ b/gestaoRaul/gestaoRaul/settings.py @@ -33,6 +33,9 @@ ALLOWED_HOSTS = [ '10.72.150.166', 'localhost', '127.0.0.1', + 'rrbec.local.com', + 'django_app', + '0.0.0.0*' ] diff --git a/gestaoRaul/requirements.txt b/gestaoRaul/requirements.txt deleted file mode 100644 index a7932a4..0000000 --- a/gestaoRaul/requirements.txt +++ /dev/null @@ -1,79 +0,0 @@ -attrs==23.2.0 -Babel==2.10.3 -bcc==0.29.1 -beautifulsoup4==4.12.3 -blinker==1.7.0 -Brlapi==0.8.5 -certifi==2023.11.17 -chardet==5.2.0 -click==8.1.6 -cloud-init==24.4.1 -colorama==0.4.6 -command-not-found==0.3 -configobj==5.0.8 -cryptography==41.0.7 -cssselect==1.2.0 -cupshelpers==1.0 -dbus-python==1.3.2 -defer==1.0.6 -distro==1.9.0 -distro-info==1.7+build1 -html5lib==1.1 -httplib2==0.20.4 -idna==3.6 -Jinja2==3.1.2 -jsonpatch==1.32 -jsonpointer==2.0 -jsonschema==4.10.3 -language-selector==0.1 -launchpadlib==1.11.0 -lazr.restfulclient==0.14.6 -lazr.uri==1.0.6 -louis==3.29.0 -lxml==5.2.1 -markdown-it-py==3.0.0 -MarkupSafe==2.1.5 -mdurl==0.1.2 -netaddr==0.8.0 -netifaces==0.11.0 -numpy==1.26.4 -oauthlib==3.2.2 -olefile==0.46 -pexpect==4.9.0 -pillow==10.2.0 -ptyprocess==0.7.0 -pycairo==1.25.1 -pycups==2.0.1 -Pygments==2.17.2 -PyGObject==3.48.2 -PyJWT==2.7.0 -pyparsing==3.1.1 -PyQt5==5.15.10 -PyQt5-sip==12.13.0 -pyrsistent==0.20.0 -pyserial==3.5 -python-apt==2.7.7+ubuntu4 -python-dateutil==2.8.2 -python-debian==0.1.49+ubuntu2 -pytz==2024.1 -pyxdg==0.28 -PyYAML==6.0.1 -requests==2.31.0 -rich==13.7.1 -scour==0.38.2 -screen-resolution-extra==0.0.0 -setuptools==68.1.2 -six==1.16.0 -soupsieve==2.5 -systemd-python==235 -typing_extensions==4.10.0 -ubuntu-drivers-common==0.0.0 -ubuntu-pro-client==8001 -ufw==0.36.2 -unattended-upgrades==0.1 -urllib3==2.0.7 -wadllib==1.3.6 -webencodings==0.5.1 -wheel==0.42.0 -xdg==5 -xkit==0.0.0 diff --git a/requirements.txt b/requirements.txt index f692a4df9284dea0373457ce63066b0c67597c6b..0f6a252736b98d8afb345067d9d4ad07149c67ee 100644 GIT binary patch literal 310 zcmYk1K~KdX5QOji7YP&^z3k1SMw1>qzN|co*ai@2`gp(Ig~Y_;WM{sa#e(_00Z1;m zWLTWfb_G!UiKJOq-%s+fi`-I;E@S#4zt$8G?D-pmivTm1T(j#?5B64VC_aYLK@(Sh zhjb#qG@9HIyoouGR)h44c{|dAtL-7dCzjA`=zMVG(Ovs}k0@-DT*E80`LE#jfXy$bKV#<-@S$5$x zvXed~x=cwuLpz^@sU;_lr}ku6liHBMn66csx`p(D^S~`u?0fe4o}Qe&JyCa3d%hd~ L(~y$?dQSWg_X<+)