File size: 1,966 Bytes
43ffce1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#--- PREREQS:
#		- to prep wkg dir:				./_env_config/local_dev/utl_prep_localUnitTest.sh
#		- to backup wkg dir:			./_env_config/local_dev/utl_prep_localUnitTest.sh --backup

#		- to build dkr image:	  		make sure you stop and remove the container if you are replacing/upgrading; 
#										or change the version tag# from 0.0.1


#--- DOCKER:
#   	docker build -t img_fastapi_templ:0.0.1 .
#   	docker create -it -p 7860:7860 --name ctr_fastapi_templ img_fastapi_templ:0.0.1
#   	docker start -it ctr_fastapi_templ
#   	docker run -it -p 7860:7860 --name ctr_fastapi_templ img_fastapi_templ:0.0.1

#   	docker push kidcoconut73/<img:tag>


#--- use a base image of python
FROM python:3.8-slim-buster



# Set up a new user named "user" with user ID 1000
USER root
RUN useradd -m -u 1000 user

USER user
ENV HOME=/home/user \
	PATH=/home/user/.local/bin:$PATH

#--- set docker image working directory to /app
RUN mkdir $HOME/app $HOME/app/scripts
WORKDIR $HOME/app

#--- install all lib dependencies into the image
COPY --chown=user ./requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r ./requirements.txt

#--- copy  files from the local pwd to the docker image /app folder
#--- .dockerignore:  ensure no local data folders or files (images) are copied into the docker image/container 
COPY --chown=user ./_env_config/local_dev/utl_dkr_preRun.sh ./scripts/docker/
COPY --chown=user ./fastapi ./fastapi
COPY --chown=user ./streamlit ./streamlit

#--- for huggingface;  assume 1:1 mapping between internal and external ports;  and only one port can truly be exposed
#--- for fastapi;  external 7860;  internal 7860
#--- for streamlit;  external xxxxx;  internal 39131
EXPOSE 7860


#--- establish environment prereqs
ENTRYPOINT [ "./scripts/docker/utl_dkr_preRun.sh" ]


#--- WORKAROUND:  you may have to stop the docker container through docker desktop, or cmd line eg docker kill <ctr_name>