lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Wenn ich mit EOF in einem Dockerfile etwas in eine Datei schreibe dann wird hier z.B $uri als Variable behandelt und in der Datei steht dann einfach nur ein Leerzeichen

RUN cat <<EOF > /etc/nginx/sites-available/default
server {
        listen 80 default_server;
        root /var/www/html;
        index index.php index.html;
        server_name _;
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }
}
EOF

Wie kann ich machen das in der Datei dann wirklich $uri steht?

von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Du kannst das EOF in einfache Anführungszeichen setzen damit Variablen nicht aufgelöst werden.

RUN cat <<'EOF' > ...
von (471 Punkte)  
0 Pluspunkte 0 Minuspunkte

Du kannst das Dollarzeichen durch ein doppeltes \ escapen.

location / {
    try_files \\$uri \\$uri/ =404;
}
von (608 Punkte)