From ade8ea32e29ad20a2030770bc0fa7310f3439dc3 Mon Sep 17 00:00:00 2001 From: emaric Date: Mon, 15 Jan 2024 11:49:58 +0100 Subject: [PATCH] dodani testovi --- Dockerfile.dev | 34 +++++++ Dockerfile.prod | 40 ++++++++ docker-compose.yaml | 33 +++++++ .../__pycache__/serializers.cpython-38.pyc | Bin 1116 -> 1816 bytes .../__pycache__/tests.cpython-38.pyc | Bin 0 -> 2431 bytes .../__pycache__/urls.cpython-38.pyc | Bin 529 -> 515 bytes .../__pycache__/views.cpython-38.pyc | Bin 1934 -> 1873 bytes plovidba_aplikacija/serializers.py | 42 +++++++-- plovidba_aplikacija/tests.py | 68 +++++++++++++- plovidba_aplikacija/urls.py | 2 +- plovidba_aplikacija/views.py | 6 +- .../__pycache__/settings.cpython-38.pyc | Bin 3163 -> 3239 bytes plovidba_projekt/settings.py | 6 ++ requirements.txt | 88 ++++++++++++++++++ 14 files changed, 307 insertions(+), 12 deletions(-) create mode 100644 Dockerfile.dev create mode 100644 Dockerfile.prod create mode 100644 docker-compose.yaml create mode 100644 plovidba_aplikacija/__pycache__/tests.cpython-38.pyc create mode 100644 requirements.txt diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000..d7a4bef --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,34 @@ +# Use an official Python runtime as a parent image +FROM python:3.8-slim + +# Set environment variables for Django +ENV DJANGO_SETTINGS_MODULE=plovidba_projekt.settings +ENV PYTHONUNBUFFERED 1 + +# Install PostgreSQL development headers, build tools, and other dependencies +RUN apt-get update && \ + apt-get install -y libpq-dev gcc && \ + apt-get clean + +# Install GDAL +RUN apt-get update \ + && apt-get install -y binutils libproj-dev gdal-bin + +# Install the PostgreSQL client +RUN apt-get update && apt-get install -y postgresql-client + +# Create and set the working directory in the container +WORKDIR /app/plovidba_projekt + +# Copy the requirements file into the container and install dependencies +COPY requirements.txt /app/plovidba_projekt/ +RUN pip install -r requirements.txt + +# Copy the rest of the application code into the container +COPY . /app/plovidba_projekt/ + +# Expose the port the application will run on (if necessary) +# EXPOSE 8000 + +# Define the default command to run when starting the container +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] \ No newline at end of file diff --git a/Dockerfile.prod b/Dockerfile.prod new file mode 100644 index 0000000..006e7ae --- /dev/null +++ b/Dockerfile.prod @@ -0,0 +1,40 @@ +# Use an official Python runtime as a parent image +FROM python:3.8-slim + +# Set environment variables for Django +ENV DJANGO_SETTINGS_MODULE=plovidba_projekt.settings +ENV PYTHONUNBUFFERED 1 + +# Install PostgreSQL development headers, build tools, and other dependencies +RUN apt-get update && \ + apt-get install -y libpq-dev gcc && \ + apt-get clean + +# Install GDAL +RUN apt-get update \ + && apt-get install -y binutils libproj-dev gdal-bin + +# Install PostgreSQL client and PostGIS extension +RUN apt-get update && \ + apt-get install -y postgresql-client postgis && \ + apt-get clean + +# .Create and set the working directory in the container +RUN mkdir -p /app/plovidba_projekt +WORKDIR /app/plovidba_projekt + +# .Copy the requirements file into the container and install dependencies +COPY requirements.txt /app/plovidba_projekt/ +RUN pip install -r requirements.txt + +# .Copy the rest of the application code into the container +COPY . /app/plovidba_projekt/ + +VOLUME /app/media +VOLUME /app/static + +# Expose the port the application will run on (if necessary) +EXPOSE 8000 + +# Run the Django application using Gunicorn in production mode +CMD ["gunicorn", "plovidba_projekt.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "4"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..cbb0dbd --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,33 @@ +version: "3" +volumes: + media: + static: +services: + # Development Environment + api_dev: + build: + context: . + dockerfile: Dockerfile.dev + container_name: plovidba_dev_container10 + restart: on-failure + ports: + - "8000:8000" # Map host port 8000 to container port 8000 + volumes: + - .:/app # Mount your application code into the container + env_file: + - .env # Specify the location of your .env files + + # Production Environment + api_prod: + build: + context: . + dockerfile: Dockerfile.prod + container_name: plovidba_prod_container + restart: on-failure + ports: + - "8000:8000" # Map host port 8000 to container port 8000 + env_file: + - C:\Users\Student1\Desktop\plovidba\myenv\plovidba_projekt\plovidba_projekt # Specify the location of your .env file + volumes: + - static:/app/static + - media:/app/media diff --git a/plovidba_aplikacija/__pycache__/serializers.cpython-38.pyc b/plovidba_aplikacija/__pycache__/serializers.cpython-38.pyc index 115b4cc062aef3769a988c0c3b92e791d4652fdf..418e54ed04c513f5cbf0d6045015acb248972d87 100644 GIT binary patch literal 1816 zcmaJ?OK;;g5GEz+5yy72L0@Un#})+&0fm9yip8P`kYamUw?MEL!6>1abRb)nT#`;3 z!#O#?p4w|KJ!FAi_6PLO@Y-JX&_B>qXQ;%MlkL)&5jhfvGv9neKkIZ_1jgV0{2^IL z$X~c<4hD-O5d8xvK?E(xl%|y8+$+4PpZYNO1uNJzNCQf~B_a^v6%nDN<8bAt5m+J- zgCzz_43-_R>}*>^>x3k`uiy-lP`j(8%CjP0NTp#Jd|&0Ic}44&``?|8<;0xiXLD6n z+T=sr)f^ryjzIKhpd?ADAgL$)YxaVq!Ob%iRCre;jf4*;GrQ-`I9Z=NL?^cc=RU|W zi0*<~(lH7Z^mh-od;P?-evuhaRS9!?Vd>BCWLg#@8|S4qSviz1iR!@ae+S2p2G1Zz zJvcFQAxrb+;2WtYrkV|AMRlHw(`+!kkmdP$$!DsiR^*dxn2)nT1Fhcd!agt+ zS8}GL2G5zvtMYA(+a*L75AP(}yZ3cJiEYeznN204WP7hk*qrhAOvN(@0lIYy6e45ljTX z_?N!%#{QU%;G3nN0|38yztT&#WKgcK?^3Iq0^1}16C#EyjcJt&K*FC@GleiJSDUDU zyKQK+4Tnl*Mgor!4ck43+YsQ9f+I+2=a$HBS;H6N-ic`x)PaM*d=8?qF$rzaci^{p z_y%}xj^4S;o^_=h8S3hxciXus%1|Qj8UcI=Z`HcDK7f^rBBr6&W$mD!w6Mh5@R5Sc z=BG+c>PzKaG0w`fsyD1kqw>?+2rhdy4dKSh1HHF|GUE Y#*gcZ?Q3j1jemn};7+@H5FPmc0UNEGSO5S3 literal 1116 zcma)4zi-n(6uw_}oHj|Lim3}5QkF=p2%$<;u+UT@>S9?sxw%W_dMH(dk!Qap%N$E)4g}T?|c5fcirtC5m@TS7yXSA@*R`iB_KJ6?JgiFqNpJ` zjVUFHDQ;NKW1fpxQ1X^2p@L6D1)9!+dme{S2~`U!t>2ZFipFHnegGsgp#Ioto24dO zY3m+wOtgh$~=Ep+)nVt?&6S~!**v7G>NGqF#|rT81S)s7IVdc zOZc;W!10Fk02O;^P@n9eY90$k<3KUMfuEQ0UtXCA)-xwAnnGmXYkPeXUSXdyJujVPocwYN#^S_jPaWW1*_P`(CH&YGIada6l~1=i`R-;TC;c zL$eOESQ!l>-?Q)oa%w@mkA}>@@fV+->~Z diff --git a/plovidba_aplikacija/__pycache__/tests.cpython-38.pyc b/plovidba_aplikacija/__pycache__/tests.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed18a3c5ee0b9669076bfcafe8030a459d336571 GIT binary patch literal 2431 zcmb_ePj4Gl5Z|}E-d)FkVrXeYXld!Gi&QJA1S$xjR7rpe*+1sJ z=b&0Cm-N7;;tTYU9ysLA5pm`-JPsTE;ep5;Qu zU^1^a*knA8l6c5?2c1klCI~C=imO1F5fEwwCMDE-ZUh#!;9#~|IKS~Xv5@GvLtxSA zV*!JyU4>VC3`9a|56LrfVD!k5c|cx~XXb%%WF442Tb6pxE0Y)?yVL}YhY~fwpVd0K zmg`7jaTdzG1YBYk#2}HvFLU&yoK6z6Oe(9(q^d+hFfP}>8$^k!6iEs@Ic221OH1M7ua#HWKFX9$BN_RYvIR?al{Mgr^1w?!&jdR*_%&F1^6l!U?QPgwv^V8| zg2UzZ8WVdm@3;F&z8}+_sGUA#+5VXr_IZxA7%QTF67NNwxEHl0WKJ~uPt^_NLX0dN z1sskeu7GFZ0WpY2s%C=>Kf0(4&CB*_K>@um%%YTqp_&WBG^c|E`Dz$qu8J>w0X*q& zC&+cwm4RSG351GAw0tp)Zh+A=jHnH8vS|s*>!`)^ajbF{Nj3#21Q+_$fT{yi0P4U9 z0i>{#+2VLE-_&5>2;gJFufWf_5L8Jpx!p$t9fU!Kw=X_JQyWh~8$qN`@&FiY5Nf?N zDa7>B)DQ=d1JD8H)S>PRYZ~hM%wFsDC%^o@|JzSrti1l?pC5X^%KIz68CXdqf#liA z9M=S zwfqu)7riecc@N3^NbVvTA4_u@i-;~Pu)y~Bh-Y!s{J&^iV={`9nP@y4Z%g1+LdAQg zv=9r2fCg&6fbkZ>Xrm=Sg57hvfCa5{b?x02zYXj7EhHZxxdUXlkWURes*eC=wjH(nuRy^~+eRE z^a6I|SsrjZh}AgK*oOfRzcAp*c);t(NoxdDUV{a*aLOC-0XkWC?<`a7k7FeI@BwRhibRj2rscn-Dzq16-CPf4j@eSzN19Ha zNgnSsyRm3?SuS(|&+Osq5k(d2Z~@71m&3^ZKIeNyBVYNive@2%?SsYBODG&)GEJEB x4E96d1h-}xz;} j%pigtM6iMgw#mtihHShbChz1~jQJb_j6BQ&i~|1vHzFbE delta 164 zcmZo>naIK$%FD~e00e)(EJ$5Akyn;6VxqR9SuR@?8zVysLkdd{doFVnGb2MPV+w03 z%L0yt3@L0W?7hrDK1V7mn9m8~r!z%yPOMX6WS+QCkM$O_Pk#Eu^GTXqx42WX67$mY w^-7C!ii?oS`U3ZyUfG0$E~D^o)&8` zdaQ+Q=Cda59oAxP+`AarVO@;uVq^~^`>Z$Ag8p~aNz&YfFeR{utTksA!>}N3D8v&1UenF|1Wpxcenl$ST27&{3c!0(}Kbr4@|s?^P9T> delta 817 zcmZWn&2G~`5Z<*N*R|us`A=Iys)!=2NPP(k2niL53IP^UWwP7E#)+$4mjep)Ku<_i zidNh>lo#L`;1Rf5JOCUJCnUHrlK?4Vt@(Cl^nJ5Cv;J5*ExUJJ*Cw#;e?Q}2XKshS zpY?AZkDb7wgqh4rieoo$!6$4rDUHiPdG6bZH?9N~N^TJ5u;K|}MP7NK2UUn&R)V<1 zt+)o6Ix92pgai#%VO7|htj6lFw}9DTO<*>G*#_nsYwZ!g{e_U(x1F|@d$%9O{BgDy z4Ufbmm06VQx6+}yPCuDdxUs0JE84?~3vLNaY5*1$u6nJFoH7zTgo?8C{ypq5_aqll zm_$#x*dHXJlmf+pcNh+%Nti|H2BWVIy)T0I!b@fue(`iA%*K$Mh z9d=ZiZyx*UtgM)SzOkM(*(wIz1Ok<7FSCnF`Khvh<%$RC#A!Y=!i)>Q07r&TxYz*w{M_7%CNc{r10L7|!GW}&q(fiti4IV5d)dC&M9s3z znmRSwMeK~|9yO`xsdvVXkCk(C%(GF-1ddRw1Nd}a?;rU_!KYj5TH!%(Zt^Iw5Sj=$ zCb5R_x6-*1%RyfT$~KrZ04!=#ftg)@UHvFL?~7Fka%b6!oR|AtYO2Zv#-g-T6`)$R6f+x!R8=6qEHzjaEMN{4fEi-3kSR(%#WG3* zE@A}~(M++9(t?ZF07bOnJX;`7C&eyGH-$NvLDPQo4Mq+&gD4>v#}G#+$6(j^5ZB<4 zct1y9*C>&a)Z&u(f}H%a%#@_W_>|PL_>`nuEFcA&AF#h?Vv_*|P?7B9t6Vv3jv%Jv bWOwc?#x;{Sac8mfFfnla=i!K&%MFN~!Ew0t+Nl*;0%aGNm&{DW~$K7^g5dGexNYStekXYO2Zv#-e~! z6`)$R6k{8PR8=59AypO3Hv#ftW|%Hyin3KtF^kfG3z-9jG*c|1wBRC^KoM;?&kD%X zNwJR7O<@jZ(6rh7j*)|nsmfz=BCE(|8;+YyY|=mv7RgMO=FVYr05KgV_i|@3E}Q%V LND5BQ