From 0f415ebbc8d3f8ded352107e3c5ee19ecc8c0df6 Mon Sep 17 00:00:00 2001 From: Navin Chandra <nc01009@surrey.ac.uk> Date: Wed, 1 May 2024 23:30:13 +0530 Subject: [PATCH] adding docker code for microservices --- docker-compose.yml | 28 ++++++++++ microservices/admins_service/DockerFIle | 19 +++++++ microservices/admins_service/requirements.txt | 34 ++++++++++++ microservices/bikes_service/Dockerfile | 18 ++++++ microservices/bikes_service/local_bike.db | Bin 0 -> 61440 bytes microservices/bikes_service/main.py | 7 +++ microservices/bikes_service/requirements.txt | 34 ++++++++++++ microservices/rentals_service/DockerFIle | 17 ++++++ microservices/rentals_service/rentals.db | Bin 8192 -> 0 bytes .../rentals_service/requirements.txt | 34 ++++++++++++ microservices/reviews_service/DockerFIle | 19 +++++++ .../reviews_service/requirements.txt | 34 ++++++++++++ microservices/reviews_service/review.db | Bin 8192 -> 0 bytes microservices/users_service/DockerFIle | 19 +++++++ microservices/users_service/main.py | 52 ------------------ microservices/users_service/requirements.txt | 34 ++++++++++++ 16 files changed, 297 insertions(+), 52 deletions(-) create mode 100644 docker-compose.yml create mode 100644 microservices/admins_service/DockerFIle create mode 100644 microservices/bikes_service/Dockerfile create mode 100644 microservices/bikes_service/local_bike.db create mode 100644 microservices/rentals_service/DockerFIle delete mode 100644 microservices/rentals_service/rentals.db create mode 100644 microservices/reviews_service/DockerFIle delete mode 100644 microservices/reviews_service/review.db create mode 100644 microservices/users_service/DockerFIle diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4b5c430 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3' + +services: + bikes_service: + build: ./bikes_service + ports: + - "8001:8001" + + admins_service: + build: ./admins_service + ports: + - "8002:8002" + + rentals_service: + build: ./rentals_service + ports: + - "8003:8003" + + reviews_service: + build: ./bikes_service + ports: + - "8001:8001" + + users_service: + build: ./admins_service + ports: + - "8002:8002" + diff --git a/microservices/admins_service/DockerFIle b/microservices/admins_service/DockerFIle new file mode 100644 index 0000000..1b85985 --- /dev/null +++ b/microservices/admins_service/DockerFIle @@ -0,0 +1,19 @@ +# Use the official Python image as the base image +FROM python:3.9-slim + +# Set the working directory in the container +WORKDIR /app + +# Copy the dependencies file to the working directory +COPY requirements.txt . + +# Install any dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy the rest of the application code to the working directory +COPY . . + +EXPOSE 8002 + +# Command to run the application +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8002"] diff --git a/microservices/admins_service/requirements.txt b/microservices/admins_service/requirements.txt index e69de29..6c5d0fd 100644 --- a/microservices/admins_service/requirements.txt +++ b/microservices/admins_service/requirements.txt @@ -0,0 +1,34 @@ +annotated-types==0.6.0 +anyio==4.3.0 +certifi==2024.2.2 +click==8.1.7 +dnspython==2.6.1 +email_validator==2.1.1 +exceptiongroup==1.2.0 +fastapi==0.110.0 +greenlet==3.0.3 +h11==0.14.0 +httpcore==1.0.5 +httptools==0.6.1 +httpx==0.27.0 +idna==3.6 +itsdangerous==2.1.2 +Jinja2==3.1.3 +MarkupSafe==2.1.5 +orjson==3.10.0 +pydantic==2.6.4 +pydantic-extra-types==2.6.0 +pydantic-settings==2.2.1 +pydantic_core==2.16.3 +python-dotenv==1.0.1 +python-multipart==0.0.9 +PyYAML==6.0.1 +sniffio==1.3.1 +SQLAlchemy==2.0.29 +starlette==0.36.3 +typing_extensions==4.10.0 +ujson==5.9.0 +uvicorn==0.29.0 +uvloop==0.19.0 +watchfiles==0.21.0 +websockets==12.0 diff --git a/microservices/bikes_service/Dockerfile b/microservices/bikes_service/Dockerfile new file mode 100644 index 0000000..6780237 --- /dev/null +++ b/microservices/bikes_service/Dockerfile @@ -0,0 +1,18 @@ +# Use the official Python image as the base image +FROM python:3.9-slim + +# Set the working directory in the container +WORKDIR /app + +# Copy the dependencies file to the working directory +COPY requirements.txt . + +# Install any dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy the rest of the application code to the working directory +COPY . . +EXPOSE 8001 + +# Command to run the application +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8001"] diff --git a/microservices/bikes_service/local_bike.db b/microservices/bikes_service/local_bike.db new file mode 100644 index 0000000000000000000000000000000000000000..865b2b7182c807dfa9118534660eb75e09466302 GIT binary patch literal 61440 zcmeHQYm6J$btd;cT#{FhmDX!n+F8r8w3625ko%M)SgZBgdhJSDtqMDK%nr%B<m?V- zsF~sJQfV7RHd-V<n)XK@K#Brw(Wb7^#%NLmX%VzQ(FaiHM+-C!inc$}0(F9-X^Yed zlECOWcQ}tb9BSp(t`p<Z)?M-pdCtAx{m!{_@60`O>*h7hq4I`l)m29>B=#ke$;1U& zP9zdJ_($NM_Zo&beclK7n+(10_BNMzV*AsX%*PYy!NZB{m&sR$e=>6|l^<S}E~om3 zjG;#|UxWkVB@hq@2m}NI0)Zb21n%{c!O_vt<SW!sOFF%%ZBd&QWNB@AaeY}{U%Ys2 zS!SYBDH&cR_)1Z$$d^~wm!Df+lW(kDURhjwLB6{Dg1mTp{rcrq_~pv->iSvs^}1Q1 zy1c&peEYNQs7})k33RipI+|&OL}k;cXc1Y%(#o{hpjNSFHZA#?<s~qC?Ua%`E9WO& zQ@Uz9#k#5)4mDH*zFkpaz<&l>(XLA9P))NP(`qrJsmU9efzdN(k}og}>^nM~C=_ja zr%6Fe<YPaFOXT1wL#@-Z@XN_hK0iD-Ix&&F_wfMNqC@Kqh9rBJ<unCyggFE<)}042 z0$~S$o$y7#TfM!4TI2C*9}MHjgZ0S;X>fFGEO~E*HEpp{*9_Y&(_E8Wne5U=#jmw_ z6XuNDHBFmZh@Jdni)%}l7S~SYXJ*>H+E8tK$FwRjhbUB1kC8WOra_BFvtFWBa5y)a znmm&l7=3yynb3?1-EDWC+H_3zx#(87sJMSK_r?YXM~@syzACYXuF-9c?%3@=DXyt) zVY{ss`{sQc+dk;FKGNH=Y=K7@Rdg};3uUujr-l=9k+un+;p>-I+AM$e`r7j4=T@0N zo<dx~)TF$&{Ot1D^6Jv^E%`RcZ2yRBfcsIqI^2&KJx_T@Qj=3d1EY&ax&hgSqo}ms z48L-%pF#Q4W*bVwQFVZl{TYft$%H<X_^B(DZX60YbbnY|RJ8(7Ssd{pwyA1E5b{6Q zOkJy}E&1a0>(`bSS6vgp!!78TPB~Sb8gR}3HF~-qqh^8-1pz7kK&@HVAm+8=ezXJZ zv>TLG;trP0CJ@6n%ys1Z*ZTwa?|s&T*!%2_M82C?V1vvjf?&u9)yMTb6G6WZWCq9p z8y)ZUWCusb$CIzz3Vv8L=nnfPzKKzQ;x>8ObVYQcLzUZ~d|Z{~NMwZ&`9m-`-P@mJ zL-eaj1_E<mR`hV_F;TnW?T*KWe^9a31-NWcV0E#qT9u+^Y?whb_T#%nt1uR0#50Xx z#17&a8>Mu!su^r3#{;R!$)17H^P}Cu4}+qpus^*(q#-0zKm1FQ@8jD+^8M`Nna^kD z(tnh`IQ*BxH&TC}s!HFM?n-?_KR@)y;BO3`9r*o$kM#dV|Fyoa_r28njoz)E|Lk#+ z-%EZXIhgnis`x*@wkM?I@#D(zLZL9Rp&2@D6?Xt7Z?tRNv0Ui|x~tY3I(-7hfHMkw zdv<nqZf@>0yyT$BDfvP^m!F=>O;6<)WM$^u^vt<jE=II1OUV<*pG3Pd)pd;)ou*|_ z%QIXzOeW^-=JWaa`FZ$FV3NI?ott0qjm*nR;anjXwi}3A<5F_cZSQzRH8iRhZ52jg z%l0g9Zt3m;-t@x4f}$u;fr#mRVS2_lJtr&5IcRmL$$@D17@B5HK31;jCN09bWDUUf zO;>9mfCIecnVA_d3&tas=NABO5A0bvw*Y3tmIKkpkD}!n1p8=-8k;Jf1KnwAhT%23 zLN~kvym5dVdK#(_F+M#rJLempk@Hc+1JUjyQu3sW_#<#?rE6-jp;}u(SF5G6E9Wgk zWr1K|JYt#S*tDFF0v?E(N08eL@FS{Lp+?c%p@xq(aE3{Fvj8=8H8eY7mZMlfR-$MJ zqTPr620v_@jT$uApgN4|9@v1LE9WhPS!nYf49m;PY{aPo(cLlZ=K}Wg*rr<E0-MFU zX<3@zX7JDU0p9lX^z_~wQ)Fd2;#h&mdPqu6OiZEehiJX77InH4*lpcK8E+Fv1z!fs z5u`b4<zyuv@u)!58bzd8dq;OPh$3pexCLRO<srSjv)h*QrrjWN|M;aq{6c>Uxl~AG zA4YDS!R8*WLl3u6^$gn%oJd953tt6{@6Rk{Ue4zuMgx&^2rzaDeFzMirD9Fhb<ZZm zY9{2H>UL``my4hrj#~-@sRf=@A<^!L&*u>cS2*{rs#aN3J;M;IT{&;rb)!zp;kc#D z%E}zisgS67(0Aa2bv!RF(rq<xV2IRA%9{m3#g0v3S}8L)HgSPEB-%NEV-p(_55Vd7 zHgs=E4FxO+)2^5|3_S~!zJI_{rg3oMNfn6f{n)?EhxRivs};5G`!2+26!J!059*B1 z;c%ruY|2HtHxS*~Cnd*SCht?X)ne76)DKk{o3|r821dpDEyt+5oSTodGY~n%=P{v9 zO*M)*o$=@dahVDEh60=Rj8KY#!vQz+heUSPciAkutYyNy-0|TBess7jaLJ8Q5$EB! z1o0>`7$|{gJL8|{WZ>)(n(EX{V6E3!2*^y#Hx`V#G>+H}k9|3aPm!S@B)XHvaLnRU z8haHSG&Bsf?soL58xlLCahOOsIFFj<-6kY*h7n)J-eJR3Yk0ct1j9VUVwCa?bz@@Z zxlNc$Id%%g^=e48ox<qEtfttwgZMT=qb-Eu&aua(5|j~u!?7tBoIrVJIw8@n<e$w+ za6(1xqI(({4D&1=!vVg<ZdB|Xdcu^-!P!$}6bOlShWzj})DBNOHCQV2C<Wm-E<8ck zx@bq5%y9}%o^p{64n%hc{nLv<Z@8^PA8UTNfQTGB-abf_%0Wn)=c80ev_0Va(EzP$ zdaLNDE#36z3lNi;m<Jn39eWPR(Tklw@$?Er&3=Cf>aVEVTBTUl;q2AJ8e%e&@@Cy( zptFx5viWnN96NR5MuL!NyU%ZKpRHQpOn_^M)DV}Mn70cSp~b+kNEgEtW!9x|VX6Rj zm2=R`-W-J!wR-(Cs@^)zPGEkt39FcXyn-gQ<-F<Hndw4aS(uN`2yu?$o6g~&5SkH! z=|E)n_=8{1rV0zEc3pF79?;MN6!J#FoNG7IUYMKAdq!az3Nxcn_ZDzw>WLajNjmCA zk4>`%6MxfpBRo|G5pNNRgAp-$HU(dv_ANq`<W3yHA``)6ePAL5Wj_101o;7ZoBRj) z7Wo(QPvq<5Z^)bE&&i*VKO|oyzej$X{5ts+@{8o>$fwDx<fq6kv4~DK$d8kcl6A65 zE|H7mBV?B3$Z7HzIYu5L2S}O>kVN)-+3#fkJ^NPn8`*yVBjP0x5C{ka1Ofs9fq+0j zARrJB2nYlO0s?{e6oLNUWHO(}Qc<wX<*<D6Ni3gu0?Vl>EYF_B^2`}5PoKteauUl^ zr?5PE63fRQ$MVDpEFXIe%j3tfeDqN)Cnm6zWh}?Xu{?GR%cDoJeB==<j~v1B;fJvt z8^iLUhp-$S#q#iBEDs&Ra%2R{g9ouZZ~)8w`?1`&4@*L@%x1C7WUx%9u^b-8GL^zo zlCT^a!g6pB%Ygwb`}?u%>%+3Q7t5ZW-d;({AnyC%M*la+Z6ak~%U;R6lX)ZaQYM}L zN?K1RhQBm?V>p?5J#|xhM|xd)={@Zxp-dnk5D*9m1Ox&C0fE4W41tvqDRFZA<iX@b zVOghT2kx(9TSnkwx2EI1l3Pv_ZUb}V+Xmd_2{-7Ta<AD;Pbt%v4Y=!8*WvDFym7Z~ z!nTZ?2bsD<$%%yrP**k03i0(77Au=g+W~cO5e@Dcg}op)*t~fFRh|HqPsOWzrnyCB zb3?ug)kKZQeU14gox&BciVWA8WxZMQR6oBTRTjFdgqxPD@+G)EN?xO7+Q1uJH&o3U z@ii+;HCo;ReRdP>?`HMH{i$2)`#jBE;q1_ibsqCI=hkRLSIeNfWWgOYazm}yD+IM3 zf%=}0hv4$Fm*i_|3G0~hH02h2JmDT)&A@F5J2eWo)zK`fTLN{<@#>ZUNlVq`XYlr3 zt<+>2dYF)6WsmtL<~<nTzJ;m@n;*(scqevAgMB!y=Q3Wcm3T9uS|9LL&iS>5`}!TZ zVcO1S+N<yNctv~E_pq;gHbMwsJKWb_kt>$AO&Lnpho!{$cme%k32*Ah`_)6f(9wCo ze82B<GrUJ29QH~ID}S^**A{QcH+1!`$~i-B+C!FgnXKws)xeD;s}j}^z2SUk{i2=_ zpjz-*1-A}WbXtP#6je)W*lR<qy`XQdQ{P^0kjwL(Rij$9=GfN;Q76)MsZ(dW)3LQ_ zzh8WJay=j2)oxfOc$i~f8Su0{-BnwN_;_vpISaOgK(}s~dIf1;r=Zu+?E1(0Q5P~l z2E9F4)OLQn0Pln8Xco0uba5cM*e~~a>SL<9hx#@cc&Xh7wF<jlT=gs#*jIWPmw=pe z@s8ke30T>Vt9T)uXJtus;1;9S3q4p@<mHQ<uzGqB*CDr;K+)Vfb}z+%>elBhL~1t- zA`o%|z_6PZT}^tbm%FP*0<>clsGjNKn2ZlN|4)+tPQd?t<lE$%<e$kulD{K=P5z4f z8Tn)KW%32`yX14^*T`qdFObiWPkqRSXwe*jfIvVXAP^7;2m}NI0s(=5KtLcM5D*Cb z{~~~w<agQS{~dPuf16$YZ?en(4!itsv&;V$yZnELUH)&d%l{_3{BN+!|8;ixUuT#9 zx7g+XO?LTTW0(JH?DBsVHdXYFCRw(K5uE=|z~+7Ovt%s$t78AZ*#9r~|BL<qm{bGy zZN+ZT3vX7-2b=x9_2!UB?Ee@0|IJcl#~Mo=(zy#i%&O34e~(omk=Xw)_Wy^I|A_tn za(J_LXtTfXJYxU9*#BP<`~SoF!rW9Ek&W71atX2jKS&86_Wyqf_y4nG4><qdKa@<6 zPmu%JU&=n3`CLXx|3P{Y^8c-*zLqLV|0>mo-X8i1_=<Q51Ox&C0fB%(Kp^m8L7<iQ zQ!M4ZELvPHR+wDICed<}!gXeq3UZdsOhNKQ$Q%~RcEpKx6+e@svJE*5sRK_kfcq!? z>`suz$d&VJNZm3U2Gd|L13AmM)M1>cnS*>*6D$>Lu4&*S6wH#P1$hQrcbSwo+bwHY zkg*JGK=wo~(I6+<ebR66lWyL<qQT`ug`{+@oVVO<i6fY=fEk#taQTfn(e@LVH;m<w ze4?EMwyp;Gb|EQUmlUvWX1d5cDOjunBd`R_W!vRM%_%=$*_5SWI%i!sTj6}pOv*R6 zTfQ=mSuAf@C}k#?4MfeezS*;k%zPeJNJ+<}yjh@CY)WO0R*)c!%dQA!15xV?W~5^% zpK+547dNQ^$s~P7Lq<CH0B;(o6`Lt7OfAT!81<!)Xy>$_h3|Ab3!i2|ihM6&S(hZC z(7mzQNyE&7oQhFb3W=;q%-6{h9!|0}i{TuwkdLl2$s$}>h@E|hS%n!DBYqST-96=J z{ySAyD;lO^twL5hND1D4ECwW`Yaif&25QA-;0sd=vMNSBDI{`EBDGk1PqL(_8?cKa zNGl1+*gCVKx_t{}#E-(vf{cn$KMILjkNeDed<!xSQd*=H%#7|c3v{^$_yz;BVoA+0 z3xXDxwt5B<ru!oMgr5lS1f~^+Z1mefCS^=Z2SVPc8?QQt298yQ4o`yoik@?|9)n0Z z!BT`jrrBx<vM8&?vT6F64qJCUF>e~k72Clax$>Q!6o{I~{n&B5Mh&Y~#C=%4BSDB} zQr@gP7<TqB$16w&8yS)y#iA!_KI)r&6u1mSQVX78;b)<R2+gFtSup4Z%dW(l#+-({ zD{&&6|M!sJN|3*WLc9b50s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx_y7@@>e-j<fs}oa z*-wJJe(+yU@3(q32H(o|^o(4XeG^|_ox3pQR<VCFxle+}7xW~hAxRn>OhU@PZ_>fH zQWu_dzi<Jcm;<k+bT8)r?;&rq{Qn<d1BGdUfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m z1m1H5`27Dp<YyA(PoWSmfq+0jARrJB2nYlO0s;YnfIvVXAP^7;2n60w1kUx~Rr=&| zp{Hk~|5n{JotkWE70RA}P&VuE{1bTehfXKF2L`}h{jgVJdgfd%_f&FFg1Z8)7HA(n zoWYSx@LUaiVhTLCWn;=R)ryRd-_ULU$N2?WX>ZFD*Z<$oZWX!(0s;YnfIvVXAP^7; z2m}NI0s(=5KtLeyK_b9k|4))P6Y#%y2?PWJ0s(=5KtLcM5D*9m1Ox&C0fB%(Kp^lV zfIvPuAdQVH$JI(*GZa>0K1}x`pEyv-LkfWD>6sb4{+}d2fc^hJ0u2;Z6bJ|e1Ofs9 zfq+0jARrJB2nYlO0s;YnfI#3~BhcF`NtpkCM7oq9pC`A-K=wDY%bD+HUdya!dedJ> ztHa+J{+;2AssBoSHg!SzH|dw*i{d2^5C{ka1Ofs9fq+0jAixk<9f1c{jh{T2oG9!r z>$L1xT3Nmb8!^>w*m{XuH*Y!33N;-0wxOAZL3d8MTRErUnSqxL+rfuSRb-IMb<;7e zwS!FGq2$EE&I9PHnr4Og3JZ&s%_cmRtRk0ds%FRzHEb}tb^vvr0G&^5$LoBi2|Gv4 z4f!fm6jdJgRpys;sv4kCH7c^+EP1+L*pE63sIwWb^OmDl<x85b%WJeu8xB-tL)EMi zU$wGSqvb77XgBSKTT|S<x^;V>r@G)guxhOJn6EmwMjJXjORFN6EESs8P%HK-LA6Jq z#^>#LwU?j0BwtfYSj&{BD!1TcikoQ-&8W&dHA;1RBa8Z$K;N<zuWt#^v{YSwMzety zr6xikGa<$59`kL?dq|X3t7^*d6tFEBm{HPn&1qfAc=cB9#M=qg`+%==&abzPdxIPB zw7RXdSL5rAcujlM_^_{iHbM(vy^6f6SlTvaK;0OI=L3!x&@s#<Xhzg2I>-So;CEnd zhIb7_#9mEd^^YRujQHv=-jHwT>Rpxdirln^F6%d0)wQZohpxE}yQjyQTb!?V)-dW4 z0kQ?3Ts3eCot9Kfu3B2dz6D9zp~+CeIlWWiUjC5F^F3ChTD9ibD}$&MX}h%5skGho z*x<C^Ilg1LQ2;&HZdfMxnqyxb@YFrM*;QT00}4|G1$UR*(779?UP1oXDJV8HyZ&-N zDnl1IuXQThgG}u}00shYbu^3GEYvs<YV2a4r~m2NyVl>vqcD{ZT)0YA%hk`~f_=4@ zQ3^;pSG_-_fSv6)3kv6Xc9v8Jo&?$YD5TyWXZ(C|qqDXiHxb(*x2r(Y+&XqL#Q^Kp z=q!Y8H!30)as%+Nn-;yE^mH%N?z)i%?Z^eXXS(<(V}(2ae<?xUAh(H>eJy(>^G@cC z%uAVc`YUNYof!Vo@QvYQ>h;u3=^g2H=_N7T3j_oL0s(=5KtLcM5D*A-M_^?{O0?Gm z;!i5y-IBn~gG?QqWiLE{I&SWxbXgI&c>q<i6@hq_(b>=53j)vYN0n?rAYSEO^B={Z zwnWwg*7tdu3lFRrQSfJzN-)6)mIGD@YGum-@mfQ(>IYa2pjlMMRs-VI?J*mAz{P;) zGG48fcr&3|2Q$`~wSdjESKsULiuS1QyIBgjJ}f2LO97p8ml#^?xe~CF!pgIifcVOL zlP%5}x-JB)N?1SihVz~Ei+VzUYS(puwISAC&^OnqFQ&cRvRId8fNO)OlPv>u>U`I$ z09OV)ZBKXA_MnRZAL~b5Y!RSS*B&f-fHi=Z`#kkARoz4VgDe4D>1ABPC4l>L=>b*% fUg*KPA}?R;gu>(G|84<bHR-8d?ymY>%>Vxff*j-} literal 0 HcmV?d00001 diff --git a/microservices/bikes_service/main.py b/microservices/bikes_service/main.py index 4fd56d7..3db3954 100644 --- a/microservices/bikes_service/main.py +++ b/microservices/bikes_service/main.py @@ -25,6 +25,13 @@ parent_directory = Path(__file__).resolve().parent.parent # Specify the path to the SQLite database file in the data directory db_file_path = parent_directory / "my_ride.db" + +# Check if the database file exists +if not db_file_path.exists(): + # If the database file doesn't exist, use a local database file from the same location + local_db_file_path = Path(__file__).resolve().parent / "local_bike.db" + db_file_path = local_db_file_path + # print(db_file_path) conn = sqlite3.connect(db_file_path) diff --git a/microservices/bikes_service/requirements.txt b/microservices/bikes_service/requirements.txt index e69de29..6c5d0fd 100644 --- a/microservices/bikes_service/requirements.txt +++ b/microservices/bikes_service/requirements.txt @@ -0,0 +1,34 @@ +annotated-types==0.6.0 +anyio==4.3.0 +certifi==2024.2.2 +click==8.1.7 +dnspython==2.6.1 +email_validator==2.1.1 +exceptiongroup==1.2.0 +fastapi==0.110.0 +greenlet==3.0.3 +h11==0.14.0 +httpcore==1.0.5 +httptools==0.6.1 +httpx==0.27.0 +idna==3.6 +itsdangerous==2.1.2 +Jinja2==3.1.3 +MarkupSafe==2.1.5 +orjson==3.10.0 +pydantic==2.6.4 +pydantic-extra-types==2.6.0 +pydantic-settings==2.2.1 +pydantic_core==2.16.3 +python-dotenv==1.0.1 +python-multipart==0.0.9 +PyYAML==6.0.1 +sniffio==1.3.1 +SQLAlchemy==2.0.29 +starlette==0.36.3 +typing_extensions==4.10.0 +ujson==5.9.0 +uvicorn==0.29.0 +uvloop==0.19.0 +watchfiles==0.21.0 +websockets==12.0 diff --git a/microservices/rentals_service/DockerFIle b/microservices/rentals_service/DockerFIle new file mode 100644 index 0000000..4314cb6 --- /dev/null +++ b/microservices/rentals_service/DockerFIle @@ -0,0 +1,17 @@ +# Use the official Python image as the base image +FROM python:3.9-slim + +# Set the working directory in the container +WORKDIR /app + +# Copy the dependencies file to the working directory +COPY requirements.txt . + +# Install any dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy the rest of the application code to the working directory +COPY . . + +# Command to run the application +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8003"] diff --git a/microservices/rentals_service/rentals.db b/microservices/rentals_service/rentals.db deleted file mode 100644 index b9e3d839ec0a26d0ceca6587137ffe766d990c68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI#K~KUk6bJCmn2?x|c+-T-JC1~S(0F%XAw(Qn@W9CwSEK<pvUMTcJ@`ev_$lmg zuz;c`FXsQUrD@-L&HCG^z59+fibhd9lZGzXF>@StMZ_3$?0aC}b!79y^~8?Z{I_t} z+33A&tDN#1vkw9S5P$##AOHafKmY;|fB*#kQsCv(DV<a*&TGlY;Zz9~8aYk!;h-V7 z*XPvt>K#t`BDqJDN4%<j)B&~qK5ubBccOjki2>d4L2Xm^nJ?yPqT;-%SRCq!`m(rG zGS2oc%EnQ;vyv#8MB#4LR0ncN^=`MrJ-=vQMDaw2&)?^iG-I{1yHT?_UGs)LR>!@p z(RsDlO#YM{r!yUBv)tFb&|#3wl?wJ1JVj|}wvW~93f^w{nJ&4xVwD7Ma>4xu@6m&m zO*Wb0OSc+x>8-}P)lb}YX7%T)+1=b;`VkO-00bZa0SG_<0uX=z1Rwwb2>fG#4@zN? ANB{r; diff --git a/microservices/rentals_service/requirements.txt b/microservices/rentals_service/requirements.txt index e69de29..6c5d0fd 100644 --- a/microservices/rentals_service/requirements.txt +++ b/microservices/rentals_service/requirements.txt @@ -0,0 +1,34 @@ +annotated-types==0.6.0 +anyio==4.3.0 +certifi==2024.2.2 +click==8.1.7 +dnspython==2.6.1 +email_validator==2.1.1 +exceptiongroup==1.2.0 +fastapi==0.110.0 +greenlet==3.0.3 +h11==0.14.0 +httpcore==1.0.5 +httptools==0.6.1 +httpx==0.27.0 +idna==3.6 +itsdangerous==2.1.2 +Jinja2==3.1.3 +MarkupSafe==2.1.5 +orjson==3.10.0 +pydantic==2.6.4 +pydantic-extra-types==2.6.0 +pydantic-settings==2.2.1 +pydantic_core==2.16.3 +python-dotenv==1.0.1 +python-multipart==0.0.9 +PyYAML==6.0.1 +sniffio==1.3.1 +SQLAlchemy==2.0.29 +starlette==0.36.3 +typing_extensions==4.10.0 +ujson==5.9.0 +uvicorn==0.29.0 +uvloop==0.19.0 +watchfiles==0.21.0 +websockets==12.0 diff --git a/microservices/reviews_service/DockerFIle b/microservices/reviews_service/DockerFIle new file mode 100644 index 0000000..b34fe12 --- /dev/null +++ b/microservices/reviews_service/DockerFIle @@ -0,0 +1,19 @@ +# Use the official Python image as the base image +FROM python:3.9-slim + +# Set the working directory in the container +WORKDIR /app + +# Copy the dependencies file to the working directory +COPY requirements.txt . + +# Install any dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy the rest of the application code to the working directory +COPY . . + +EXPOSE 8004 + +# Command to run the application +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8004"] diff --git a/microservices/reviews_service/requirements.txt b/microservices/reviews_service/requirements.txt index e69de29..6c5d0fd 100644 --- a/microservices/reviews_service/requirements.txt +++ b/microservices/reviews_service/requirements.txt @@ -0,0 +1,34 @@ +annotated-types==0.6.0 +anyio==4.3.0 +certifi==2024.2.2 +click==8.1.7 +dnspython==2.6.1 +email_validator==2.1.1 +exceptiongroup==1.2.0 +fastapi==0.110.0 +greenlet==3.0.3 +h11==0.14.0 +httpcore==1.0.5 +httptools==0.6.1 +httpx==0.27.0 +idna==3.6 +itsdangerous==2.1.2 +Jinja2==3.1.3 +MarkupSafe==2.1.5 +orjson==3.10.0 +pydantic==2.6.4 +pydantic-extra-types==2.6.0 +pydantic-settings==2.2.1 +pydantic_core==2.16.3 +python-dotenv==1.0.1 +python-multipart==0.0.9 +PyYAML==6.0.1 +sniffio==1.3.1 +SQLAlchemy==2.0.29 +starlette==0.36.3 +typing_extensions==4.10.0 +ujson==5.9.0 +uvicorn==0.29.0 +uvloop==0.19.0 +watchfiles==0.21.0 +websockets==12.0 diff --git a/microservices/reviews_service/review.db b/microservices/reviews_service/review.db deleted file mode 100644 index 2d07e1bc5127de7eeaae96265f68529a2dc32ee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI#&q~8E90%}Z42FV#ZXR~|2_80ZI;#(0w`HTaP0cFUlXNy4LAOF%_25l>ET6<j z@F`47+!PV<D13jUO`H7E{Q9|Nbl%sQqDh?0!i)~tCgYqP6EVh0_A*@&+}z9dIq&lK z-=f6!CU0vdi?6>h(-07V00bZa0SG_<0uX=z1Rwx`KMOp$ys}lT^5-B6$G1wVd#xT) z+m+f<xV|9YZS@7&L8`5ijikuF(h+$>U-X2eGwBUn8PJIcb{A=PsY-0pa&W9~)VIMT z%=CPke{Gp~9nWTJo{=vuKaJY0qtG0@JElh88;Iqa?x_@BZ<v=sHM@PCr05DMhHWvT z3sX|MnE7F$E%D33mMJ@}easZUSTD}z8?VeX1Oy-e0SG_<0uX=z1Rwwb2tWV=|4v|s gSJ(>Y``eFYosmu{q-h*Sl%M~dgGSS7I8Ep19YK|ASpWb4 diff --git a/microservices/users_service/DockerFIle b/microservices/users_service/DockerFIle new file mode 100644 index 0000000..0ec1be9 --- /dev/null +++ b/microservices/users_service/DockerFIle @@ -0,0 +1,19 @@ +# Use the official Python image as the base image +FROM python:3.9-slim + +# Set the working directory in the container +WORKDIR /app + +# Copy the dependencies file to the working directory +COPY requirements.txt . + +# Install any dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy the rest of the application code to the working directory +COPY . . + +EXPOSE 8005 + +# Command to run the application +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8005"] diff --git a/microservices/users_service/main.py b/microservices/users_service/main.py index 4ab60be..7d9f1f0 100644 --- a/microservices/users_service/main.py +++ b/microservices/users_service/main.py @@ -123,58 +123,6 @@ async def create_user(user: User): return user -# # Routes -# @app.post("/users/", response_model=User) -# async def create_user(user: User): -# print('hit') -# cursor.execute(''' -# INSERT INTO Users -# (username, password, email, phone_number, credit_card_info, registration_date, last_login) -# VALUES (?, ?, Optional[str]?, ?, ?, ?, ?) -# ''', ( -# user.username, user.password, user.email, user.phone_number, -# user.credit_card_info, user.registration_date, user.last_login -# )) -# conn.commit() -# return user - - -# @app.get("/users/", response_model=List[User]) -# async def read_users(): -# cursor.execute('SELECT * FROM Users') -# print("got record") -# users = cursor.fetchall() -# return users - -# @app.get("/users/", response_model=List[User]) -# async def read_users(): -# cursor.execute('SELECT * FROM Users') -# print("got record") -# users = cursor.fetchall() -# # Convert each row into a dictionary -# user_dicts = [] -# for user in users: -# # user_dict = { -# # "user_id": user[0], -# # "username": user[1], -# # # "password": user[2], -# # "email": user[3], -# # "phone_number": user[4], -# # # "credit_card_info": user[5], -# # "registration_date": user[6], -# # # "last_login": user[7] -# # } -# user_dict = { -# "user_id": user[0], -# "username": user[1], -# "email": user[2], -# "phone_number": user[3], -# "registration_date": user[4], -# # "last_login": user[7] -# } -# user_dicts.append(user_dict) -# return user_dicts - @app.get("/users/{user_id}", response_model=User) async def read_user(user_id: int): diff --git a/microservices/users_service/requirements.txt b/microservices/users_service/requirements.txt index e69de29..6c5d0fd 100644 --- a/microservices/users_service/requirements.txt +++ b/microservices/users_service/requirements.txt @@ -0,0 +1,34 @@ +annotated-types==0.6.0 +anyio==4.3.0 +certifi==2024.2.2 +click==8.1.7 +dnspython==2.6.1 +email_validator==2.1.1 +exceptiongroup==1.2.0 +fastapi==0.110.0 +greenlet==3.0.3 +h11==0.14.0 +httpcore==1.0.5 +httptools==0.6.1 +httpx==0.27.0 +idna==3.6 +itsdangerous==2.1.2 +Jinja2==3.1.3 +MarkupSafe==2.1.5 +orjson==3.10.0 +pydantic==2.6.4 +pydantic-extra-types==2.6.0 +pydantic-settings==2.2.1 +pydantic_core==2.16.3 +python-dotenv==1.0.1 +python-multipart==0.0.9 +PyYAML==6.0.1 +sniffio==1.3.1 +SQLAlchemy==2.0.29 +starlette==0.36.3 +typing_extensions==4.10.0 +ujson==5.9.0 +uvicorn==0.29.0 +uvloop==0.19.0 +watchfiles==0.21.0 +websockets==12.0 -- GitLab