Dockerfile: Unterschied zwischen den Versionen

Aus robopagex.com
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 53: Zeile 53:
 
===== RUN =====
 
===== RUN =====
 
  ''RUN ON BUILD | multiple run possible''
 
  ''RUN ON BUILD | multiple run possible''
  ''' RUN echo "HELLO" '''
+
  '''RUN echo "HELLO" '''
  ''' RUN apt-get update && \ '''
+
  '''RUN apt-get update && \ '''
  '''     apt-get upgrade -y '''
+
  '''   apt-get upgrade -y '''
  
 
  ''DELETE CACHE AFTER INSTALL''
 
  ''DELETE CACHE AFTER INSTALL''
  ''' RUN apt-get install -y --no-install-recommends'''
+
  '''RUN apt-get install -y --no-install-recommends'''
 +
 
 +
''INSTALL MYSQLI''
 +
'''RUN docker-php-ext-install mysqli'''
 +
 
 +
''INSIDE DOCKER CONTAINER|BASH''
 +
'''$ docker-php-ext-enable mysqli'''
 +
'''$ apachectl restart'''
  
 
===== VOLUME =====
 
===== VOLUME =====

Aktuelle Version vom 5. April 2022, 15:26 Uhr

Dockerfile

Best practices for writing Dockerfiles
Dockerfile reference

Erstellen eines Docker Image

Dockerfile >> *Build* >> Docker Image >> *Run* >>> Docker Container

BUILD BASIC IMAGE
$ docker build .
$ docker build -t [NAME] .
$ docker build -t php:latest .
$ docker run -d --name container_name image_name
FROM
Select Base-Image
FROM alpine:latest 
LABEL
Text Information, Description, etc..
LABEL name="Basic Image" 
LABEL version="1.0" 
LABEL description="A new basic image" 
LABEL maintainer="robopagex.com" 
LABEL contact="mymail@robopagex.com" 
ADD & COPY
ADD URL
ADD FOLDER
ADD TAR
COPY FILE
FOR BOTH: --chown=user:group
CMD & ENTRYPOINT
CMD & ENTRYPOINT | RUN ON CONTAINER START
Run only once or overwrite with docker run [command]
CMD = OVERWRITE PARAMETERS
ENTRYPOINT = ADD OPTIONS
CMD ["/bin/bash"] 
CMD ["echo","Hello"] 
CMD ["com","arg","arg"] 
Overwrite CMD IP with robopagex.com
ENTRYPOINT ["/bin/ping"]
CMD ["127.0.0.1"] 
docker run -it myalpine robopagex.com
CMD ["/bin/ping","127.0.0.1"] 
docker run -it myalpine robopagex.com
CMD ["/bin/ping","127.0.0.1"]
docker run -it myalpine bash
RUN
RUN ON BUILD | multiple run possible
RUN echo "HELLO" 
RUN apt-get update && \ 
    apt-get upgrade -y 
DELETE CACHE AFTER INSTALL
RUN apt-get install -y --no-install-recommends
INSTALL MYSQLI
RUN docker-php-ext-install mysqli
INSIDE DOCKER CONTAINER|BASH
$ docker-php-ext-enable mysqli
$ apachectl restart
VOLUME
VOLUME ["/var/lib/mysql", "/var/log/mysql"]
docker run .. -v /myvolumes/mysql:/var/lib/mysql -v /myvolumes/log:/var/log/mysql [IMAGE]
Without -v | docker create random UID like /var/lib/docker/volumes/uid
For Fedora,CentOS, RHEL users:
-v /myvolumes/mysql/:/var/lib/mysql:z
EXAMPLE
  FROM alpine:latest 
  RUN mkdir -p /app 
  COPY . /app 

JUMP INTO WORKDIR

  WORKDIR /app 
  docker run -it myalpine
  FROM alpine:latest 
  ENV name TEST 
  RUN echo "Hello, $name" 
  ENV nginx_conf /app/myconf.conf