私は、Dockerイメージを、コンテナ内に(インストールするにはrootユーザーである必要があります)インストールして作成しています。ドッキングウィンドウの画像についてdockerイメージを作成できません。 "rootユーザーである必要があります"
# cat Dockerfile
FROM ubuntu:16.04
COPY $pwd/intel_virtual_gateway_console64_1_9_0.tar /root/
COPY $pwd/login.exp /root/
WORKDIR /root/
RUN tar -xvf intel_virtual_gateway_console64_1_9_0.tar
RUN apt-get update && apt-get install -y expect \
expect-dev \
libxml2-utils
RUN whoami
RUN expect login.exp
ビルドプロセス:
[email protected]:~/RAGHU/krishna# docker build -t release:4.0 .
Sending build context to Docker daemon 633.5MB
Step 1/8 : FROM ubuntu:16.04
---> 6a2f32de169d
Step 2/8 : COPY $pwd/intel_virtual_gateway_console64_1_9_0.tar /root/
---> Using cache
---> 36e9ea407082
Step 3/8 : COPY $pwd/login.exp /root/
---> Using cache
---> 0fad538973d4
Step 4/8 : WORKDIR /root/
---> Using cache
---> f5d7f36bc37f
Step 5/8 : RUN tar -xvf intel_virtual_gateway_console64_1_9_0.tar
---> Using cache
---> 6cab428f1bc2
Step 6/8 : RUN apt-get update && apt-get install -y expect expect-dev libxml2-utils
---> Using cache
---> 5bb1ee67332f
は、コンテナがrootユーザーとして実行されていることを確認するには、次の
Step 7/8 : RUN whoami
---> Running in 112b87d77a08
root
---> 0c7eb38cc06b
Removing intermediate container 112b87d77a08
Step 8/8 : RUN expect login.exp
---> Running in 5f186baf2f8d
spawn ./virtualgatewayconsole_package/virtual_gateway_console_intel64
Install Error
--------------------------------------------------------------------------------
To install the application, you must be a root user.
--------------------------------------------------------------------------------
Type any key to exit: ^C
アプリケーションのインストールがたとえ失敗した理由を見つけることができません。 rootユーザーとして実行されます。
EDIT:login.expスクリプトを追加:このスクリプトは、私の機能を完了させるためにとても基本的です。
#cat login.exp
#!/usr/bin/expect -f
if 0 {
*************************READ THIS BEFORE START*********************
User password must consist of at least 3 of the following categories:
uppercase, lowercase, numeric, and non-alphanumeric. In case of violation
of this rule the Installation will fail!
********************************************************************
}
set passwd "[email protected]"
set username "raghu"
spawn ./virtualgatewayconsole_package/virtual_gateway_console_intel64
expect "Press Enter key to continue or q to quit:"
send "\n"
expect "Press ENTER for more, or q when done"
send "q"
sleep 5
#expect "conditions of this license agreement?"
expect "*(accept/decline): "
send "accept\n"
#Product installation
expect "*Please type a selection \[1\]:"
send "\n"
expect "*Please type a selection (Press Enter to next):"
send "\n"
sleep 2
#Configure TLS settings
expect "*Enter TLS keystore password (only numbers, letters and [email protected]#$%^*()_+{}|.:?=-):"
send $passwd
send "\n"
expect "*Retype TLS keystore password:"
send $passwd
send "\n"
sleep 2
expect "Please type a selection (Press Enter to next):"
send "\n"
#Configure host
expect "Please type a selection (Press Enter to next):"
send "\n"
expect "Please type a selection (Press Enter to next):"
send "\n"
#Configure user for logging on the management console
expect "Please type a selection (Press Enter to next):"
send "\n"
sleep 2
expect "Enter user password (only numbers, letters, spaces and [email protected]#$%^*()_+{}|.:?=-):"
send $passwd
send "\n"
expect "Retype user password:"
send $passwd
send "\n"
expect "Please type a selection (Press Enter to next):"
send "\n"
sleep 2
#Configure PostgreSQL service
expect "Please type a selection (Press Enter to next):"
send "\n"
expect "Enter PostgreSQL user password (only numbers, letters and [email protected]#$%^*()_+{}|.:?=-):"
send $passwd
send "\n"
expect "Retype PostgreSQL user password:"
send $passwd
send "\n"
expect "Please type a selection (Press Enter to next):"
send "\n"
sleep 60
#Create Keystore
expect "What is your first and last name?"
send $username
send "\n"
expect "What is the name of your organizational unit?"
send "radisys"
send "\n"
expect "What is the name of your organization?"
send "radisys"
send "\n"
sleep 2
expect "What is the name of your City or Locality?"
send "banglore"
send "\n"
expect "What is the name of your State or Province?"
send "karnataka"
send "\n"
expect "What is the two-letter country code for this unit?"
send "IND"
send "\n"
sleep 2
expect "Is CN=raghu, OU=radisys, O=radisys, L=banglore, ST=karnataka, C=IND correct?"
send "yes"
send "\n"
sleep 2
expect "Please type a selection \[q\]:"
send "q"
expect eof
'login.exp'には何がありますか? – jwodder
Expectは通常、パターンの出力を監視し、探しているものを検出します。 'login.exp'を見ることなく、私はそれが"ルートユーザ "を意味すると思うシェルプロンプトパターンを探していて、その特定のパターンを見ていないと思います。 –