Giter Site home page Giter Site logo

Comments (7)

skunkworker avatar skunkworker commented on July 4, 2024 2

I ran into an issue earlier tonight trying to run chrome headless on lambda. It worked perfectly on the docker container but chrome never launched on lambda until I tracked down that lambda doesn't have /dev/shm with chrome 64+ --disable-dev-shm-usage moves from /dev/shm to /tmp. Could these images also restrict /dev/shm to not exist? like the real lambda environment?

from docker-lambda.

mhart avatar mhart commented on July 4, 2024

Are you sure this is something that's provided by this image? I haven't checked but I highly doubt it.

If anything it's probably something that Docker itself adds

from docker-lambda.

mhart avatar mhart commented on July 4, 2024

Confirmed – there's no /dev/shm in the image:

curl -s https://lambci.s3.amazonaws.com/fs/nodejs4.3.tgz | tar -t | grep '^dev/'
dev/
dev/stdout
dev/null
dev/random
dev/full
dev/urandom
dev/zero
dev/stderr
dev/stdin

It appears that Docker adds this when it creates a container (ie, when you docker run) – see the reference here:

https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources

Specifically the --shm-size arg:

Size of /dev/shm. The format is . number must be greater than 0. Unit is optional and can be b (bytes), k (kilobytes), m (megabytes), or g (gigabytes). If you omit the unit, the system uses bytes. If you omit the size entirely, the system uses 64m.

Given that it must be greater than zero there doesn't seem to be a way to run a container without Docker adding it. You could specify it as one byte – that might have a similar effect? Or you'll have to rely on the complicated unmounting procedure you outlined.

In any case, I don't think there's anything that can be done about the image itself on this front

from docker-lambda.

kadrach avatar kadrach commented on July 4, 2024

I will give that a go, thanks for the quick follow up @mhart !

from docker-lambda.

mhart avatar mhart commented on July 4, 2024

@kadrach any success on this front?

from docker-lambda.

mdavis-xyz avatar mdavis-xyz commented on July 4, 2024

Here are some things I tried which do not work:

rm -rf /dev/shm

FROM lambci/lambda:build-python3.8
RUN rm -rf /dev/shm

Permission error because we're not root (but we are)

Overwrite /dev/shm

FROM lambci/lambda:build-python3.8 as src
RUN echo "abc" > /file.dat
FROM lambci/lambda:build-python3.8 as main
COPY --from=src /file.dat /dev/shm

Nope, once again docker build discards the changes to /dev/shm.
I think it's not specific to /dev/shm, and actually docker ignores changes to /dev.

--shm-size=0

Running with --shm-size=0 doesn't work. Docker ignores a zero value

Other?

Maybe there's another way to emulate multiprocessing.Pool failing? (e.g. some global python config?)
I'm not sure what would do that though. I looked through the relevant cpython code. I'm not sure where exactly the error is thrown.
Maybe here?

from docker-lambda.

armeenm avatar armeenm commented on July 4, 2024

--ipc=none works for me.

from docker-lambda.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.