ডকার পাত্রে সার্টিবোট ইনস্টল করার সময় tzdata এর সাথে ব্যবহারকারীর মিথস্ক্রিয়া এড়ানো


105

আমি একটি উবুন্টু 16.04 চিত্র সহ একটি ডকার পরিবেশে সারটিবোট ইনস্টল করতে চাই :

উদাহরণ স্বরূপ:

docker run -it ubuntu:16.04 /bin/bash

আমি যখন ধারকটির ভিতরে আছি, তখন সার্টিবোট ইনস্টল করার সবচেয়ে সোজা উপায়টি ব্যবহার করে না কারণ এটির ব্যবহারকারীর হস্তক্ষেপ প্রয়োজন:

apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository -y -u ppa:certbot/certbot && \
apt-get install -y certbot

সমস্যাটি হ'ল tzdataযা এই ইন্টারেক্টিভ ডায়ালগটি দিয়ে থামে:

Extracting templates from packages: 100%
Preconfiguring packages ...
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

 1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
 2. America     5. Arctic     8. Europe    11. SystemV
 3. Antarctica  6. Asia       9. Indian    12. US
Geographic area: 

আশ্চর্যজনকভাবে যথেষ্ট, এটি tzdataপিপিএ যুক্ত করার আগে ইনস্টল করার সময় এটি কাজ করে:

apt-get update && \
apt-get install -y tzdata && \
apt-get install -y software-properties-common && \
add-apt-repository -y -u ppa:certbot/certbot && \
apt-get install -y certbot

প্রশ্নাবলী:

  • আমি tzdataপিপিএ যুক্ত করার আগে বা পরে ইনস্টল করি কিনা তা কেন পার্থক্য রাখে?
  • সার্টিবোট ইনস্টল করার সময় ইন্টারেক্টিভ কথোপকথন এড়ানোর জন্য কি আরও ভাল পন্থা থাকতে পারে?

দুর্ভাগ্যক্রমে আমার পক্ষে কাজ করছে না।
নিকো Schlömer

উত্তর:


100

dpkgইন্টারেক্টিভ কথোপকথন ছাড়াই (অপ্টের মতো অন্যান্য সরঞ্জামগুলির পিছনে) চালানোর জন্য , আপনি একটি পরিবেশের পরিবর্তনশীল হিসাবে সেট করতে পারেন

DEBIAN_FRONTEND=noninteractive

উদাহরণস্বরূপ, আপনি এআরজি ব্যবহার করে এটি ডকফেরলে সেট করতে পারেন :

ARG DEBIAN_FRONTEND=noninteractive

4
দ্রষ্টব্য: sudoবেশিরভাগ ক্ষেত্রে পরিবেশের পরিবর্তনগুলি পাস করে না, sudo DEBIAN_FRONTEND=noninteractive sudo apt-get install -y tzdataকাজ করে তবে DEBIAN_FRONTEND=noninteractive sudo apt-get install -y tzdataতা হয় না doesn't
ব্রেন্ডন লং

29
ডকফায়াইলগুলির জন্য, এটি যুক্ত করুন: ENV DEBIAN_FRONTEND = অচিন্তিত
জার্সি শিম

1
আমার একটি কেস হয়েছিল যেখানে এটি উবুন্টু 18.04 এ কাজ করে না। তবে নীচে উত্তর এটি উবুন্টু 18.04 এ স্থির করেছে।
তমন্তে

28

উবুন্টু 18.04-এ আমি সেই ডকফিলাইলটি করেছি:

ENV TZ=Europe/Minsk
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update && apt instal....

আমি মার্কিন / ডেনভার চেষ্টা করার সময় আমার পক্ষে কোনও পার্থক্য মনে হয় নি। হতে পারে আমার কাছে টিজে তথ্য ভুল আছে।
পূর্বে শব্দগুলি


13

টিএল এবং ডিআর: আপনার ডকারফিলের মধ্যে

ENV DEBIAN_FRONTEND=noninteractive 

কারণ:

কিছু নির্দিষ্ট ইনস্টলার একটি দুর্দান্ত ফ্রন্ট-এন্ড রেখে 'ইনস্টলেশন' সহজ করে তোলে। আপনার ম্যানুয়াল ইনস্টল করার সময় এটি দুর্দান্ত হয়, এটি স্বয়ংক্রিয় ইনস্টলেশনগুলির সময় একটি সমস্যা হয়ে ওঠে।

নিম্নলিখিতটি আপনার পরিবেশের স্ট্রিংয়ে রেখে ইন্টারেক্টিভ ইনস্টলেশনটি চালিয়ে যেতে পারেন।

চিয়ার্স



একমত; পরিবর্তন করা। পরামর্শ দেওয়ার জন্য
ফ্লাইংভিও

4

সন্তানের চিত্রের পরে বা সন্তানের চিত্রকে প্রভাবিত DEBIAN_FRONTEND=noninteractiveকরতে আপনি এড়াতে আপনার কমান্ডের আগে সেট করতে পারেন ENV DEBIAN_FRONTEND=noninteractive:

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        tzdata \
    && rm -rf /var/lib/apt/lists/*
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.