Skip to content

Commit 498c566

Browse files
authored
Merge pull request #58 from isabelizimm/expose-docker
EXPOSE port in Dockerfile
2 parents c050d49 + f97b5d9 commit 498c566

2 files changed

Lines changed: 40 additions & 31 deletions

File tree

vetiver/tests/test_write_docker.py

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,26 @@ def test_vetiver_write_app_no_rspm():
1414
contents = open(file).read()
1515
os.remove(file)
1616
assert(contents == f"""# # Generated by the vetiver package; edit with care
17-
#
17+
# start with python base image
1818
FROM python:{py_version}
1919
20-
#
21-
WORKDIR /code
20+
# create directory in container for vetiver files
21+
WORKDIR /vetiver
2222
23-
#
24-
COPY vetiver_requirements.txt /code/requirements.txt
23+
# copy and install requirements
24+
COPY vetiver_requirements.txt /vetiver/requirements.txt
2525
2626
#
27-
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
27+
RUN pip install --no-cache-dir --upgrade -r /vetiver/requirements.txt
2828
29-
#
30-
COPY app.py /code/app
29+
# copy app file
30+
COPY app.py /vetiver/app
3131
32-
#
33-
CMD ["uvicorn", "app.app:api", "--host", "0.0.0.0", "--port", "80"]
32+
# expose port
33+
EXPOSE 8080
34+
35+
# run vetiver API
36+
CMD ["uvicorn", "app.app:api", "--host", "0.0.0.0", "--port", "8080"]
3437
""")
3538

3639
def test_vetiver_write_app_rspm():
@@ -41,22 +44,25 @@ def test_vetiver_write_app_rspm():
4144
py_version = str(sys.version_info.major) + "." + str(sys.version_info.minor)
4245

4346
assert(contents == f"""# # Generated by the vetiver package; edit with care
44-
#
47+
# start with python base image
4548
FROM python:{py_version}
4649
47-
#
48-
WORKDIR /code
50+
# create directory in container for vetiver files
51+
WORKDIR /vetiver
4952
50-
#
51-
COPY vetiver_requirements.txt /code/requirements.txt
53+
# copy and install requirements
54+
COPY vetiver_requirements.txt /vetiver/requirements.txt
5255
5356
#
5457
RUN pip config set global.index-url https://colorado.rstudio.com/rspm/pypi/latest/simple
55-
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
58+
RUN pip install --no-cache-dir --upgrade -r /vetiver/requirements.txt
5659
57-
#
58-
COPY app.py /code/app
60+
# copy app file
61+
COPY app.py /vetiver/app
5962
60-
#
61-
CMD ["uvicorn", "app.app:api", "--host", "0.0.0.0", "--port", "80"]
63+
# expose port
64+
EXPOSE 8080
65+
66+
# run vetiver API
67+
CMD ["uvicorn", "app.app:api", "--host", "0.0.0.0", "--port", "8080"]
6268
""")

vetiver/write_docker.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import sys
22

33
def vetiver_write_docker(app_file: str = "app.py",
4-
path: str = ".",
4+
path: str = "./",
55
rspm_env: bool = False,
66
host: str = "0.0.0.0",
7-
port: str = "80"):
7+
port: str = "8080"):
88
"""Writes a Dockerfile to run VetiverAPI in a container
99
1010
Args
@@ -29,22 +29,25 @@ def vetiver_write_docker(app_file: str = "app.py",
2929

3030

3131
docker_script = f"""# # Generated by the vetiver package; edit with care
32-
#
32+
# start with python base image
3333
FROM python:{py_version}
3434
35-
#
36-
WORKDIR /code
35+
# create directory in container for vetiver files
36+
WORKDIR /vetiver
3737
38-
#
39-
COPY vetiver_requirements.txt /code/requirements.txt
38+
# copy and install requirements
39+
COPY vetiver_requirements.txt /vetiver/requirements.txt
4040
4141
#{rspm}
42-
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
42+
RUN pip install --no-cache-dir --upgrade -r /vetiver/requirements.txt
4343
44-
#
45-
COPY {app_file} /code/app
44+
# copy app file
45+
COPY {app_file} /vetiver/app
4646
47-
#
47+
# expose port
48+
EXPOSE {port}
49+
50+
# run vetiver API
4851
CMD ["uvicorn", "app.app:api", "--host", "{host}", "--port", "{port}"]
4952
"""
5053

0 commit comments

Comments
 (0)