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 image for running generators #5

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

hectorpal
Copy link

It's convenient for some people.

Hector Palacios added 2 commits November 4, 2021 21:04
Copy link
Collaborator

@jendrikseipp jendrikseipp left a comment

Choose a reason for hiding this comment

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

Nice idea!


# && rm -rf /var/lib/apt/lists/*
# Not sure I need libc6-i386
# g*-multilib is an overkill but will be useful for compiling
Copy link
Collaborator

Choose a reason for hiding this comment

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

In which scenarios do you think 32-bit compilations will be useful? I think we can remove them for simplicity.

# g*-multilib is an overkill but will be useful for compiling

RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1 && \
/usr/bin/python3 -m pip install --upgrade pip && \
Copy link
Collaborator

Choose a reason for hiding this comment

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

Haven't we updated pip already above?

# Not sure I need libc6-i386
# g*-multilib is an overkill but will be useful for compiling

RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1 && \
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this for making python point to python3? If so, we could instead install the python-is-python3 package.


# Install OpenJDK-11
RUN apt-get update && \
apt-get install -y openjdk-11-jre-headless && \
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why use a separate apt-get call for JDK?

@@ -0,0 +1,61 @@
FROM ubuntu:18.04
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we use 20.04?

@@ -9,6 +9,10 @@ Planning Competitions (IPC).
* Build single generator: ``cd assembly; make``
* Test generators: ``sudo apt install python-tox && tox``

## Docker instructions
* Build in Docker image: ``docker build -t pddl-generators .``
* Run Docker container: ``docker run -ti -t pddl-generators``
Copy link
Collaborator

Choose a reason for hiding this comment

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

Double -t?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think it would be good to use long option names for Docker beginners: --tag, --tty, --interactive

build_all Show resolved Hide resolved

COPY . .

RUN ./build_all save-logs
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why do you save the build logs? Couldn't they confuse users who just want to run the generators? You'll see the build output when the container is built, won't you?

@haz
Copy link
Contributor

haz commented Nov 22, 2021

My immediate reaction is "why do this when it's meant to be just placed inside of planutils?!?", but then the complexity of what's required for building everything makes me pivot to, "you should totally wrap up this docker build in a singularity, and bring it into planutils just like any other finicky-to-compile planner!".

You game for that, @hectorpal ? It would mean that from a planutils equipped system (docker or native), you could run something like pddl-generators generate blocksworld 1 2 3 4 or whatever. I'll sprinkle in the extra JSON required to put it all behind the online planning service about to drop.

@hectorpal
Copy link
Author

Good point. It'd be better to have it in planutils. I'll retract the PR and create one in planutils.

@jendrikseipp
Copy link
Collaborator

If I understand Christian correctly, he suggests to keep the Dockerfile in this repo and then use it for adding the PDDL generators to planutils. I think this makes sense.

@haz
Copy link
Contributor

haz commented Nov 25, 2021

That is indeed what I had in mind. Just need to wrap the completed docker into a singularity so that the generators can be used. This related at all to the changes @guicho271828 is running with over on #6 ?

@jendrikseipp
Copy link
Collaborator

This related at all to the changes @guicho271828 is running with over on #6 ?
I think it's independent.

@guicho271828
Copy link
Contributor

guicho271828 commented Mar 8, 2023

#6 is a simple attempt to make pddl-generators a unified unix-like tool.
(currently it is just a bunch of scripts placed in each subdirectory without common API or structure)

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

Successfully merging this pull request may close these issues.

4 participants