-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
70 lines (56 loc) · 1.92 KB
/
Copy pathDockerfile
File metadata and controls
70 lines (56 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
FROM ubuntu:20.04
# Avoid interactive prompts
ARG DEBIAN_FRONTEND=noninteractive
# Install dependencies
RUN apt-get update && apt-get install -y \
python3-pip \
python3-tk \
git \
ffmpeg \
libsm6 \
libxext6 \
libgl1-mesa-glx \
libgl1-mesa-dri \
locales \
&& rm -rf /var/lib/apt/lists/*
# Fix Locale for PyBullet GUI (often required)
RUN locale-gen en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
# Install Python packages
# qibullet pulls in pybullet, numpy, cv2, etc.
# flask for the shim server
RUN pip3 install --no-cache-dir \
qibullet \
flask \
numpy \
pyzmq
# --- Legacy Support for Physical Robot (Python 2.7) ---
RUN apt-get update && apt-get install -y python2 libpython2.7 curl && \
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py && \
python2 get-pip.py && \
python2 -m pip install flask requests "pyzmq<20" && \
rm -rf /var/lib/apt/lists/*
# pynaoqi SDK is supplied at runtime by bind-mounting the user's licit copy at
# /opt/pynaoqi-python2.7-2.5.7.1-linux64 (see setup.sh and the compose files).
ENV PYTHONPATH="${PYTHONPATH}:/opt/pynaoqi-python2.7-2.5.7.1-linux64/lib/python2.7/site-packages"
# Create non-root user
RUN useradd --create-home --shell /bin/bash pepperdev
USER pepperdev
WORKDIR /home/pepperdev
# Pre-create cache dir so downstream mounts inherit pepperdev ownership.
RUN mkdir .qibullet
# Copy Bridge Code
COPY --chown=pepperdev:pepperdev py3-naoqi-bridge /home/pepperdev/py3-naoqi-bridge
# Copy Simulation Code
COPY --chown=pepperdev:pepperdev src /home/pepperdev/src
# Copy Entrypoint
COPY --chown=pepperdev:pepperdev entrypoint.sh /home/pepperdev/entrypoint.sh
# Set PYTHONPATH so python can find the modules in src/ if needed,
# though we will run them directly.
ENV PYTHONPATH="${PYTHONPATH}:/home/pepperdev/src"
# Expose Shim Port
EXPOSE 5000
# Default command: Manual shell
CMD ["/bin/bash"]