Docker Составьте флаги

Я пишу свой ответ, потому что некоторые люди могут быть более довольны простым примером реальной жизни без включения STL.

По какой-то причине у меня есть своя простая реализация только массива данных, и я хотел использовать диапазон основанный на цикле. Вот мое решение:

 template <typename DataType>
 class PodArray {
 public:
   class iterator {
   public:
     iterator(DataType * ptr): ptr(ptr){}
     iterator operator++() { ++ptr; return *this; }
     bool operator!=(const iterator & other) const { return ptr != other.ptr; }
     const DataType& operator*() const { return *ptr; }
   private:
     DataType* ptr;
   };
 private:
   unsigned len;
   DataType *val;
 public:
   iterator begin() const { return iterator(val); }
   iterator end() const { return iterator(val + len); }

   // rest of the container definition not related to the question ...
 };

Тогда пример использования:

PodArray<char> array;
// fill up array in some way
for(auto& c : array)
  printf("char: %c\n", c);
0
задан J. Doe 17 January 2019 в 12:26
поделиться

2 ответа

Для сетей я всегда включаю в файл docker-compose спецификацию сети. Если сеть уже существует, докер не создаст новую.

version: '3'
services:
   server:
      image: app-dependencies
   ports:
      - "5003:80"
   volumes:
      - ./app:/app
   command:  python /app/app.py
   restart: always
   networks:
     app_net:
       ipv4_address: 172.18.0.5

networks:
  app_net:
     name: NETWORK_NAME
     driver: bridge
     ipam:
       config:
          - subnet: NETWORK_SUBNET

volumes:
   VOLUME_NAME:
      driver:local

И вам нужно будет добавить тома отдельно, чтобы соответствовать команде запуска докера.

0
ответ дан andre_vieira 17 January 2019 в 12:26
поделиться

Вы уверены, что вам нужен IP-адрес для контейнера? Это не рекомендуемая практика, почему вы хотите установить ее явно?

docker-compose.yml

version: '3'
services:
  server:   # correct, this would be container's name
    image: webserver  # this should be image name from your command line
    ports:
     - "5003:80"  # correct, but only if you need to communicate to service from ouside
    volumes:  # volumes just repeat you command line, you can use Env vars
      - $APP_PHOTO_DIR:/app/mysql-data
      - $APP_CONFIG_DIR:/app/config
    command:  ["python", "/app/app.py"]  # JSON notation strongly recommended
    restart: always

Затем docker-compose up -d и все. Вы можете получить доступ к своему сервису с хоста с помощью localhost:5003, нет необходимости во внутреннем IP.

0
ответ дан grapes 17 January 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: