Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

doc: specify what is required for dockerFile #39

Open
shaunc opened this issue Jul 19, 2023 · 0 comments
Open

doc: specify what is required for dockerFile #39

shaunc opened this issue Jul 19, 2023 · 0 comments

Comments

@shaunc
Copy link

shaunc commented Jul 19, 2023

I have a Dockerfile:

FROM public.ecr.aws/lambda/python:3.10

RUN yum install -y libffi libffi-devel postgresql-devel postgresql-libs gcc

And sls configuration:

  pythonRequirements:
    dockerFile: ./Dockerfile
    dockerizePip: non-linux

This gives the error:

Running "docker run --rm -v /Users/shauncutts/Library/Caches/serverless-python-requirements/86c924ff078f80e03d14d56c584f87f0cbbbdb7c8193b653db2fcbfe2d8fc440_x86_64_slspyc:/var/task:z -v /Users/shauncutts/Library/Caches/serverless-python-requirements/downloadCacheslspyc:/var/useDownloadCache:z -u 0 sls-py-reqs-custom python3.10 -m pip install -t /var/task/ -r /var/task/requirements.txt --cache-dir /var/useDownloadCache" failed with: "entrypoint requires the handler name to be the first argument"

However, when I try to put in an entrypoint into the dockerfile:

FROM public.ecr.aws/lambda/python:3.10-x86_64

RUN yum install -y libffi libffi-devel postgresql-devel postgresql-libs gcc

ENTRYPOINT [ "/bin/bash", "-c" ]

This builds, but the resulting archive doesn't have any dependencies from requirements:

unzip -l .serverless/cdh-send-sftp-cachematrix.zip
Archive:  .serverless/cdh-send-sftp-cachematrix.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
    11788  01-01-1980 00:00   crane-provider.yml
      157  01-01-1980 00:00   Dockerfile
     1466  01-01-1980 00:00   handler.py
    15714  01-01-1980 00:00   node_modules/.yarn-integrity
    20595  01-01-1980 00:00   package-lock.json
      250  01-01-1980 00:00   package.json
      184  01-01-1980 00:00   Pipfile
    15821  01-01-1980 00:00   Pipfile.lock
      426  01-01-1980 00:00   send-config.yaml
        0  01-01-1980 00:00   send/__init__.py
      151  01-01-1980 00:00   send/__pycache__/__init__.cpython-36.pyc
     1949  01-01-1980 00:00   send/__pycache__/check_db.cpython-36.pyc
     1333  01-01-1980 00:00   send/__pycache__/download.cpython-36.pyc
      221  01-01-1980 00:00   send/__pycache__/log.cpython-36.pyc
      787  01-01-1980 00:00   send/__pycache__/send_config.cpython-36.pyc
     2139  01-01-1980 00:00   send/__pycache__/send.cpython-36.pyc
     2084  01-01-1980 00:00   send/__pycache__/to_server.cpython-36.pyc
     1876  01-01-1980 00:00   send/check_db.py
      896  01-01-1980 00:00   send/download.py
       69  01-01-1980 00:00   send/log.py
      550  01-01-1980 00:00   send/send_config.py
     1901  01-01-1980 00:00   send/send.py
     2299  01-01-1980 00:00   send/to_server.py
      615  01-01-1980 00:00   ssh/known_hosts
    30226  01-01-1980 00:00   yarn.lock
        0  01-01-2098 00:00   .completed_requirements
      201  01-01-2098 00:00   requirements.txt
---------                     -------
   113698                     27 files

What are the requirements for the Dockerfile? How does serverless know where to take the libraries from and how come they don't end up in the archive?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant