dockercontainerscondamambamicromamba

How to update permissions on base image for Docker? (mambaorg/micromamba)


Here's my Dockerfile:

# v2023.8.21
# =================================
# Micromamba
# =================================

FROM mambaorg/micromamba:1.4.9

ARG ENV_NAME

SHELL ["bash"]

WORKDIR /tmp/

# Data
RUN mkdir -p /volumes/
RUN mkdir -p /volumes/input
RUN mkdir -p /volumes/output
RUN mkdir -p /volumes/database

# Retrieve VEBA repository
RUN mkdir -p veba/
COPY --chown=$MAMBA_USER:$MAMBA_USER ./install/ veba/install/
COPY --chown=$MAMBA_USER:$MAMBA_USER ./src/ veba/src/
COPY --chown=$MAMBA_USER:$MAMBA_USER ./VERSION veba/VERSION
COPY --chown=$MAMBA_USER:$MAMBA_USER ./LICENSE veba/LICENSE


RUN micromamba install -y -n base -f veba/install/environments/${ENV_NAME}.yml && \
    micromamba clean -a -y -f

However, I'm unable to create the /volumes/ directories because of permission issues.

How can I update the permissions so I can edit the root directory?


Solution

  • If you mean that lines like this are failing:

    RUN mkdir -p /volumes/
    

    Then you can switch the user running the commands with the USER directive, and the switch back to the original user when you're done:

    # switch to root to create /volumes hierarchy
    USER root
    
    RUN mkdir -p /volumes
    RUN mkdir -p /volumes/input
    RUN mkdir -p /volumes/output
    RUN mkdir -p /volumes/database
    
    # switch back to mambauser
    USER mambauser