Bash load virtualenv on launch as non-root user in docker
Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
I try to make a custom python docker image that spawns a bash session with virtualenv pre-loaded. In order to achieve that I created a entrypoint.sh
script:
#!/bin/sh
USER_ID=$(id -u developer)
GROUP_ID=$(id -g developer)
if [ $DOCKER_UID !== $USER_ID ]; then
usermod -u $DOCKER_UID developer
fi
if [ $DOCKER_GID !== $GROUP_ID ]; then
groupmod -g $DOCKER_GID developer
fi
cd /home/dev/code
if [ -f /home/dev/code/$VENV_FOLDER/bin/activate ]; then
# Launch bash with virtualenv preloades as developer user
fi
And I use the following Dockerfile
in order to build de docker image:
FROM python:3
ENV DOCKER_UID=1000
ENV DOCKER_GID=1000
ENV VENV_FOLDER=env
RUN mkdir /home/dev/code &&
pip install virtualenv &&
useradd -d /home/dev -u $DOCKER_UID -g $DOCKER_GID developer
COPY entrypoint.sh /usr/bin/entrypoint.sh
RUN chmod +x /usr/bin/entrypoint.sh
VOLUME /home/dev/code
ENTRYPOINT /usr/bin/entrypoint.sh
But now I am stack to this: When I need to launch a virtualenv I run the following command on an active bash session:
cd ~/myproject
source ./env/bin/activate
And then I activate my virtualenv
, but what I want to achieve is to make bash create first the python virtualenv
and then prompt to a bash session. But how I am gonna achieve that?
bash shell-script docker
add a comment |
up vote
0
down vote
favorite
I try to make a custom python docker image that spawns a bash session with virtualenv pre-loaded. In order to achieve that I created a entrypoint.sh
script:
#!/bin/sh
USER_ID=$(id -u developer)
GROUP_ID=$(id -g developer)
if [ $DOCKER_UID !== $USER_ID ]; then
usermod -u $DOCKER_UID developer
fi
if [ $DOCKER_GID !== $GROUP_ID ]; then
groupmod -g $DOCKER_GID developer
fi
cd /home/dev/code
if [ -f /home/dev/code/$VENV_FOLDER/bin/activate ]; then
# Launch bash with virtualenv preloades as developer user
fi
And I use the following Dockerfile
in order to build de docker image:
FROM python:3
ENV DOCKER_UID=1000
ENV DOCKER_GID=1000
ENV VENV_FOLDER=env
RUN mkdir /home/dev/code &&
pip install virtualenv &&
useradd -d /home/dev -u $DOCKER_UID -g $DOCKER_GID developer
COPY entrypoint.sh /usr/bin/entrypoint.sh
RUN chmod +x /usr/bin/entrypoint.sh
VOLUME /home/dev/code
ENTRYPOINT /usr/bin/entrypoint.sh
But now I am stack to this: When I need to launch a virtualenv I run the following command on an active bash session:
cd ~/myproject
source ./env/bin/activate
And then I activate my virtualenv
, but what I want to achieve is to make bash create first the python virtualenv
and then prompt to a bash session. But how I am gonna achieve that?
bash shell-script docker
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I try to make a custom python docker image that spawns a bash session with virtualenv pre-loaded. In order to achieve that I created a entrypoint.sh
script:
#!/bin/sh
USER_ID=$(id -u developer)
GROUP_ID=$(id -g developer)
if [ $DOCKER_UID !== $USER_ID ]; then
usermod -u $DOCKER_UID developer
fi
if [ $DOCKER_GID !== $GROUP_ID ]; then
groupmod -g $DOCKER_GID developer
fi
cd /home/dev/code
if [ -f /home/dev/code/$VENV_FOLDER/bin/activate ]; then
# Launch bash with virtualenv preloades as developer user
fi
And I use the following Dockerfile
in order to build de docker image:
FROM python:3
ENV DOCKER_UID=1000
ENV DOCKER_GID=1000
ENV VENV_FOLDER=env
RUN mkdir /home/dev/code &&
pip install virtualenv &&
useradd -d /home/dev -u $DOCKER_UID -g $DOCKER_GID developer
COPY entrypoint.sh /usr/bin/entrypoint.sh
RUN chmod +x /usr/bin/entrypoint.sh
VOLUME /home/dev/code
ENTRYPOINT /usr/bin/entrypoint.sh
But now I am stack to this: When I need to launch a virtualenv I run the following command on an active bash session:
cd ~/myproject
source ./env/bin/activate
And then I activate my virtualenv
, but what I want to achieve is to make bash create first the python virtualenv
and then prompt to a bash session. But how I am gonna achieve that?
bash shell-script docker
I try to make a custom python docker image that spawns a bash session with virtualenv pre-loaded. In order to achieve that I created a entrypoint.sh
script:
#!/bin/sh
USER_ID=$(id -u developer)
GROUP_ID=$(id -g developer)
if [ $DOCKER_UID !== $USER_ID ]; then
usermod -u $DOCKER_UID developer
fi
if [ $DOCKER_GID !== $GROUP_ID ]; then
groupmod -g $DOCKER_GID developer
fi
cd /home/dev/code
if [ -f /home/dev/code/$VENV_FOLDER/bin/activate ]; then
# Launch bash with virtualenv preloades as developer user
fi
And I use the following Dockerfile
in order to build de docker image:
FROM python:3
ENV DOCKER_UID=1000
ENV DOCKER_GID=1000
ENV VENV_FOLDER=env
RUN mkdir /home/dev/code &&
pip install virtualenv &&
useradd -d /home/dev -u $DOCKER_UID -g $DOCKER_GID developer
COPY entrypoint.sh /usr/bin/entrypoint.sh
RUN chmod +x /usr/bin/entrypoint.sh
VOLUME /home/dev/code
ENTRYPOINT /usr/bin/entrypoint.sh
But now I am stack to this: When I need to launch a virtualenv I run the following command on an active bash session:
cd ~/myproject
source ./env/bin/activate
And then I activate my virtualenv
, but what I want to achieve is to make bash create first the python virtualenv
and then prompt to a bash session. But how I am gonna achieve that?
bash shell-script docker
bash shell-script docker
asked 2 days ago
Dimitrios Desyllas
16314
16314
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f482174%2fbash-load-virtualenv-on-launch-as-non-root-user-in-docker%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown