2017-01-10 2 views
0

Ich bin mir bewusst, dass Docker-Container ein Datenvolumen teilen können, aber ist es ihnen möglich, Frameworks zu teilen? Zum Beispiel, wenn ich zwei .NET-Dienste auf IIS laufen lasse, kann ich einfach das Framework zwischen ihnen teilen?Können Container ein Framework teilen?

Antwort

2

Ja können Sie, was Sie in der Regel tun, ist

Alternative A:

ein Busybox Bild erstellen und kopieren Sie Ihre Rahmen, setzen sich die Position als Volumen VOLUME /opt/framework/

FROM alpine 
COPY framework /opt/framework 
VOLUME /opt/framework 
COPY busyscript.sh /usr/local/bin/busyscript 
RUN chmod +x /usr/local/bin/busyscript 
CMD ["busyscript"] 

Während die busyscript.sh sieht wie

#!/bin/sh 
#set -x 

pid=0 

# SIGTERM-handler 
term_handler() { 
    if [ $pid -ne 0 ]; then 
    kill -SIGTERM "$pid" 
    wait "$pid" 
    fi 
    exit 143; # 128 + 15 -- SIGTERM 
} 

# setup handlers 
# on callback, kill the last background process, which is `tail -f /dev/null` and execute the specified handler 
trap 'kill ${!}; term_handler' SIGTERM 

echo "Started code" 
# wait forever 
while true 
do 
    tail -f /dev/null & wait ${!} 
done 
aus

Dieses Bild als Dienst in Ihrem Docker-compose.yml als "Rahmen" können sagen, dann, auf die Dienste, die Sie ihnen Sie konsumieren wollen,

volume_from 
    - framework:ro 

Pros hinzufügen:

  • können Sie kompilieren, erstellen und bereitstellen, die Framworks soley
  • gibt es mehr oder weniger kein Laufzeitaufwand für den Betrieb dieser zusätzlichen Behälter

Con:

  • Bildgröße Overhead (alpin, 30mb)

Alternative B verwenden Sie einen Ihrer Services als "Rahmenbasis", lässt Dienst A sagen, das bedeutet, Sie kopieren Sie den Rahmen für diesen Dienst (einer der 2 raubend es) und wieder auch VOLUME /opt/framework verwenden, um es

im Dienst B als Volumen aussetzen, die gleiche Art und Weise, Sie montieren die Lautstärke

serviceB: 
    volume_from 
    - serviceA:ro 

Pro:

  • kein zusätzlicher Behälter

Con:

  • Rahmen muss mit serviceA eingesetzt werden, wäre egal Service A benötigen Updates
    • Sie haben eine Abhängigkeit von A, braucht A ein Update Alle anderen Container müssen aufgrund der Freigabe neu erstellt werden.
+0

Super! Vielen Dank –

Verwandte Themen