Je veux charger une personnalisée J'ai un dockerfile avec la structure suivante: p> .zshrc code> Chaque fois que je saisis le conteneur Docker avec
Docker Run -it Container_name code> étant donné que le
.zshrc fichier est déjà dans le conteneur. p>
Description h1>
FROM archlinux:latest
# Install things...
# Install zsh & oh-my-zsh
# Retrieve custom .zshrc from a repository and place it at ~/.zshrc
# Clone extensions for oh-my-zsh
# Run zsh on container start
CMD [ "zsh" ]
3 Réponses :
Je pense que vous devez mettre à jour le contenu de le .profile: p> the .zshrc: p> le dockerfile: p> alors vous pouvez l'essayer avec p> éditer: p> au cas où vous Vous ne voulez pas copier un nouveau $ home / .profile code>. Voici un exemple.
.profile code>, vous pouvez toujours ajouter des choses dans l'existence. e.g. p>
Cela fonctionne. Sur une note latérale, je me demande si je pouvais le faire avec un fichier qui est déjà à l'intérieur du conteneur. Est-il possible de courburer pour les fichiers .profile et .zshrc au lieu de les copier dans le conteneur?
bien sûr que c'est possible. J'ai mis à jour la réponse pour fournir un exemple
Néanmoins, l'approche @ Exadra37 est plus propre
Vous devez ajouter la commande chs / chemin / chemin / à / shell code> pour ajouter la coque ZSH comme valeur par défaut pour l'utilisateur dans le conteneur: p>
docker run --rm -it --entrypoint "chsh -s /root/.zshrc" image-name
Le problème n'était pas complètement avec le Après avoir répété à nouveau sur ma propre machine, j'ai réalisé qu'il ne se chargeait pas non plus. p>
dockerfile code>. Oui, @ exadra37 mentionné
cmd ["zsh && source ~ / .zshrc"] code> n'a pas fonctionné à cause de l'ordre d'exécution. Cependant, le problème était avec mon
.zshrc code> configuration. P>
Conclusion H1>
cmd ["/ bin / zsh"] code> Comme la dernière ligne de mon Dockerfile charge automatiquement le fichier
.zshrc code> situé sur
/root/.zshrc < / Code>, je devais juste m'assurer que mon fichier de configuration était écrit correctement. P>
Vous pouvez mapper votre répertoire. docs.docker.com/storage/volumes
Je ne comprends pas vraiment comment cela fonctionnerait. Cela ne signifie-t-il pas que je dois avoir le fichier localement sur ma machine hôte? Je me demandais si je pouvais utiliser le fichier déjà cloné dans le conteneur Docker.
@ALEXHEXAN: Je n'ai pas assez de connaissances sur Docker, mais pouvez-vous définir dans la configuration de Docker une variable d'environnement, qui est ensuite établie avant que ZSH ne commence? Si vous définissez le varialble
zdotdir code>, il doit nommer un répertoire, et le fichier .zshrc est ensuite provenant de ce répertoire à la place de
$ home code>.