Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker dependencies cache #39

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 5 additions & 1 deletion Dockerfile
Expand Up @@ -18,9 +18,13 @@ RUN apt-get update && \
lsb-release && \
apt-get clean all

COPY setup.py .
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can just copy requirements.txt and install dependencies with that, I don't think copying setup.py is required

also copying requirements.txt to /teuthology_api would be better, maybe something like:

COPY .teuthology.yaml /root
WORKDIR /teuthology_api
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY . /teuthology_api/
RUN pip3 install -e .

COPY requirements.txt .
RUN pip3 install -r requirements.txt
RUN pip3 install -e .

COPY .teuthology.yaml /root
WORKDIR /teuthology_api
COPY . /teuthology_api/
RUN pip3 install -e .

CMD sh /teuthology_api/start_container.sh
359 changes: 359 additions & 0 deletions requirements.txt
@@ -0,0 +1,359 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile setup.cfg
#
annotated-types==0.6.0
# via pydantic
ansible==2.10.7
# via teuthology
ansible-base==2.10.17
# via ansible
anyio==3.7.1
# via
# fastapi
# httpx
# starlette
# watchfiles
apache-libcloud==3.8.0
# via teuthology
attrs==23.1.0
# via cmd2
autopage==0.5.2
# via cliff
backports-ssl-match-hostname==3.7.0.1
# via teuthology
bcrypt==4.0.1
# via paramiko
beanstalkc3==0.4.0
# via teuthology
build==1.0.3
# via pip-tools
certifi==2023.11.17
# via
# httpcore
# httpx
# requests
# sentry-sdk
cffi==1.16.0
# via
# cryptography
# pynacl
charset-normalizer==3.3.2
# via requests
click==8.1.7
# via
# pip-tools
# uvicorn
cliff==4.4.0
# via
# osc-lib
# python-openstackclient
cmd2==2.4.3
# via cliff
configobj==5.0.8
# via teuthology
configparser==6.0.0
# via teuthology
cryptography==41.0.5
# via
# ansible-base
# openstacksdk
# paramiko
# pyopenssl
# python-openstackclient
debtcollector==2.5.0
# via
# oslo-config
# oslo-utils
# python-keystoneclient
decorator==5.1.1
# via
# dogpile-cache
# openstacksdk
docopt==0.6.2
# via teuthology
dogpile-cache==1.2.2
# via openstacksdk
fastapi==0.104.1
# via teuthology-api (setup.cfg)
gevent==23.9.1
# via teuthology
greenlet==3.0.1
# via gevent
gunicorn==21.2.0
# via teuthology-api (setup.cfg)
h11==0.14.0
# via
# httpcore
# uvicorn
httpcore==1.0.2
# via httpx
httplib2==0.22.0
# via teuthology
httptools==0.6.1
# via uvicorn
httpx==0.25.2
# via teuthology-api (setup.cfg)
humanfriendly==10.0
# via teuthology
idna==3.4
# via
# anyio
# httpx
# requests
importlib-metadata==6.8.0
# via cliff
iso8601==2.1.0
# via
# keystoneauth1
# openstacksdk
# oslo-utils
# python-novaclient
# python-openstackclient
itsdangerous==2.1.2
# via teuthology-api (setup.cfg)
jinja2==3.1.2
# via ansible-base
jmespath==1.0.1
# via openstacksdk
jsonpatch==1.33
# via openstacksdk
jsonpointer==2.4
# via jsonpatch
keystoneauth1==5.4.0
# via
# openstacksdk
# osc-lib
# python-cinderclient
# python-keystoneclient
# python-novaclient
lupa==2.0
# via teuthology
markupsafe==2.1.3
# via jinja2
msgpack==1.0.7
# via oslo-serialization
ndg-httpsclient==0.5.1
# via teuthology
netaddr==0.9.0
# via
# oslo-config
# oslo-utils
# teuthology
netifaces==0.11.0
# via
# openstacksdk
# oslo-utils
openstacksdk==2.0.0
# via
# osc-lib
# python-openstackclient
os-service-types==1.7.0
# via
# keystoneauth1
# openstacksdk
osc-lib==2.9.0
# via python-openstackclient
oslo-config==9.2.0
# via python-keystoneclient
oslo-i18n==6.2.0
# via
# osc-lib
# oslo-config
# oslo-utils
# python-cinderclient
# python-keystoneclient
# python-novaclient
# python-openstackclient
oslo-serialization==5.2.0
# via
# python-keystoneclient
# python-novaclient
oslo-utils==6.3.0
# via
# osc-lib
# oslo-serialization
# python-cinderclient
# python-keystoneclient
# python-novaclient
# python-openstackclient
packaging==23.2
# via
# ansible-base
# build
# gunicorn
# oslo-utils
# python-keystoneclient
paramiko==3.3.1
# via teuthology
pbr==6.0.0
# via
# keystoneauth1
# openstacksdk
# os-service-types
# osc-lib
# oslo-i18n
# oslo-serialization
# python-cinderclient
# python-keystoneclient
# python-novaclient
# python-openstackclient
# stevedore
pexpect==4.8.0
# via teuthology
pip-tools==6.14.0
# via teuthology
platformdirs==4.0.0
# via openstacksdk
prettytable==3.9.0
# via
# cliff
# python-cinderclient
# python-novaclient
# teuthology
prometheus-client==0.19.0
# via teuthology
psutil==5.9.6
# via teuthology
ptyprocess==0.7.0
# via pexpect
pyasn1==0.5.1
# via
# ndg-httpsclient
# teuthology
pycparser==2.21
# via cffi
pydantic==2.5.2
# via
# fastapi
# pydantic-settings
pydantic-core==2.14.5
# via pydantic
pydantic-settings==2.1.0
# via teuthology-api (setup.cfg)
pynacl==1.5.0
# via
# paramiko
# teuthology
pyopenssl==23.3.0
# via
# ndg-httpsclient
# teuthology
pyparsing==3.1.1
# via
# httplib2
# oslo-utils
pyperclip==1.8.2
# via cmd2
pyproject-hooks==1.0.0
# via build
python-cinderclient==9.4.0
# via python-openstackclient
python-dateutil==2.8.2
# via teuthology
python-dotenv==1.0.0
# via
# pydantic-settings
# uvicorn
python-keystoneclient==5.2.0
# via python-openstackclient
python-novaclient==18.4.0
# via
# python-openstackclient
# teuthology
python-openstackclient==6.3.0
# via teuthology
pytz==2023.3.post1
# via
# oslo-serialization
# oslo-utils
pyyaml==5.3.1
# via
# ansible-base
# cliff
# openstacksdk
# oslo-config
# oslo-utils
# teuthology
# uvicorn
requests==2.31.0
# via
# apache-libcloud
# keystoneauth1
# oslo-config
# python-cinderclient
# python-keystoneclient
# teuthology
requestsexceptions==1.4.0
# via openstacksdk
rfc3986==2.0.0
# via oslo-config
sentry-sdk==1.37.1
# via teuthology
simplejson==3.19.2
# via osc-lib
six==1.16.0
# via
# configobj
# python-dateutil
# python-keystoneclient
sniffio==1.3.0
# via
# anyio
# httpx
starlette==0.27.0
# via fastapi
stevedore==5.1.0
# via
# cliff
# dogpile-cache
# keystoneauth1
# osc-lib
# oslo-config
# python-cinderclient
# python-keystoneclient
# python-novaclient
# python-openstackclient
teuthology @ git+https://github.com/ceph/teuthology@teuth-api
# via teuthology-api (setup.cfg)
typing-extensions==4.8.0
# via
# fastapi
# pydantic
# pydantic-core
tzdata==2023.3
# via
# oslo-serialization
# oslo-utils
urllib3==2.1.0
# via
# requests
# sentry-sdk
uvicorn[standard]==0.24.0.post1
# via teuthology-api (setup.cfg)
uvloop==0.19.0
# via uvicorn
watchfiles==0.21.0
# via uvicorn
wcwidth==0.2.12
# via
# cmd2
# prettytable
websockets==12.0
# via uvicorn
wheel==0.41.3
# via pip-tools
wrapt==1.16.0
# via debtcollector
zipp==3.17.0
# via importlib-metadata
zope-event==5.0
# via gevent
zope-interface==6.1
# via gevent

# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools