Code: Select all
FROM eclipse-temurin:17-noble
SHELL ["/bin/bash", "-c"]
#create a non-root user and use it
RUN useradd --base-dir /home --create-home --shell /bin/bash flutter_dev
# surpress "debconf: unable to initialize frontend: Dialog" error messages
ENV DEBIAN_FRONTEND=noninteractive
USER flutter_dev
# ADD --chown=1001:1001 --chmod=766 android-studio-2024.2.2.15-linux.tar.gz /tmp
ADD --chown=flutter_dev:flutter_dev --chmod=766 android-studio-2024.2.2.15-linux.tar.gz /tmp
Here is how /tmp folder looks like when I run the container:

Before posting this question, I searched for a similar problem on the Internet. Es sieht so aus, als ob es früher vor Jahren und Jahren ähnliche Probleme gab, und diese Probleme wurden durch Hinzufügen von -Chown /--ChMode -Parametern zum Befehl add behoben. Ich muss also etwas falsch machen und ich habe keine Ahnung, was es sein könnte.
Code: Select all
Client:
Version: 27.3.1
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: 0.20.1
Path: /usr/lib/docker/cli-plugins/docker-buildx
Server:
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 27.3.1
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: true
Native Overlay Diff: false
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: c507a0257ea6462fbd6f5ba4f5c74facb04021f4.m
runc version:
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.6.75-2-MANJARO
Operating System: Manjaro Linux
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.35GiB
Name: XXXXXXXXXX
ID: XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Ich habe die Dockerfile so geändert, wie Philippe vorgeschlagen wurde. Die neue Dockerfile lautet wie folgt: < /p>
Code: Select all
FROM eclipse-temurin:17-noble
SHELL ["/bin/bash", "-c"]
#create a non-root user and use it
RUN apt-get install tar \
&& useradd --base-dir /home --create-home --shell /bin/bash flutter_dev
# surpress "debconf: unable to initialize frontend: Dialog" error messages
ENV DEBIAN_FRONTEND=noninteractive
USER flutter_dev
COPY --chown=flutter_dev:flutter_dev --chmod=766 android-studio-2024.2.2.15-linux.tar.gz /tmp
WORKDIR /tmp
RUN tar xzvf android-studio-2024.2.2.15-linux.tar.gz
Um eine Kopie zu verwenden, muss ich entweder < /li>
< /ol>
Untar the Tarball und dann das Ganze in den Container kopieren. (Ich bin mir nicht sicher, ob dies die beste Praxis ist) < /li>
oder kopieren Sie den Tarball über und dann im Container (das mache ich im Moment). Dieser Schritt fügt eine weitere Ebene hinzu, und ich bin mir nicht sicher, warum ich das tun sollte. Meiner Meinung nach soll der Befehl hinzufügen alle diese Schritte in einen einzelnen Befehl einpacken. Ich benutze es also lieber so früh wie möglich. Das würde mich später vor der Ausführung unnötiger Laufbefehle später bewahren.>