Size: a a a

RU.Docker — Официальное Русское Сообщество

2019 April 04

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
manefesto
это по факту initdb
initdb выполняется только раз при первом старте и только так и должно быть, все остальное должно применяться к рабочей бд
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
Ребята, а есть возможность пробросить из docker-compose.yml переменную внутрь Dockerfile когда запускаешь docker-compose up --build ?
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Grigory Tumakov
Ребята, а есть возможность пробросить из docker-compose.yml переменную внутрь Dockerfile когда запускаешь docker-compose up --build ?
env файл же есть
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Grigory Tumakov
Ребята, а есть возможность пробросить из docker-compose.yml переменную внутрь Dockerfile когда запускаешь docker-compose up --build ?
args директиву почитай в доках docker-compose
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
А, да, можно через args кстати
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
В docker-compose указываешь списком, а в Dockerfile через директиву ARG
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
build:
 context: .
 args:
   MYSQL_ROOT_PASSWORD: password
   ENV: test


dockerfile:
ARG MYSQL_ROOT_PASSWORD
ARG ENV
ADD ${ENV}/data.xml /data/
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Dan 🐈 Capybara
build:
 context: .
 args:
   MYSQL_ROOT_PASSWORD: password
   ENV: test


dockerfile:
ARG MYSQL_ROOT_PASSWORD
ARG ENV
ADD ${ENV}/data.xml /data/
Так точно. Только старайтесь не использовать ENV в названиях atgs и env
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
А через env_file не получится никак?
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Grigory Tumakov
А через env_file не получится никак?
Получится.
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Читайте документацию :)
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Там всё есть
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
Получилось, спасибо
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Grigory Tumakov
А через env_file не получится никак?
Через env_file переменные будут доступны только в контейнере, для Dockerfile используйте args они доступны при build
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
ARG APP_DOMAIN
ENV APP_DOMAIN=$APP_DOMAIN
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
вот так доступны стали
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Grigory Tumakov
ARG APP_DOMAIN
ENV APP_DOMAIN=$APP_DOMAIN
Вот это уже то что нужно!
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
Настроил запуск nginx с генерируемым конфигом из env, я счастлив
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Grigory Tumakov
Настроил запуск nginx с генерируемым конфигом из env, я счастлив
кидай пример как передаются параметры в конфиг
источник

GT

Grigory Tumakov in RU.Docker — Официальное Русское Сообщество
docker-compose.yml
  web:
   image: docker.test/vokamut/nginx:latest
   restart: always
   depends_on:
     - app
   links:
     - app
   volumes:
     - ${PWD}/certs:/etc/nginx/ssl
   ports:
     - 80:80
     - 443:443
   networks:
     - docker-net
   env_file: .env.prod


Dockerfile:
FROM nginx:1.15-alpine

RUN apk --no-cache add gettext

COPY docker/vhost.conf /etc/nginx/nginx.conf.template

COPY public /var/www/public

ARG APP_DOMAIN
ENV APP_DOMAIN=$APP_DOMAIN

CMD ["/bin/sh", "-c", "/usr/bin/envsubst '$$APP_DOMAIN' < /etc/nginx/nginx.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"]


vhost.conf
server {
   server_name ${APP_DOMAIN};
   listen 443 ssl http2;
   listen [::]:443 ssl http2;

   ssl_certificate /etc/nginx/ssl/${APP_DOMAIN}.crt;
   ssl_certificate_key /etc/nginx/ssl/${APP_DOMAIN}.key;

...
источник