Azure混合工人码头工人

Azure混合工人码头工人,azure,docker,dockerfile,azure-automation,Azure,Docker,Dockerfile,Azure Automation,我目前正在尝试使用以下地址提供的说明对Azure Hybrid Worker进行docker ize: 我90%成功,但是当我尝试使用onboarding.py运行最后一步时,在文档指定的位置找不到脚本。基本上,该文件在容器中的任何位置都找不到。任何帮助都会很好 FROM ubuntu:14.04 RUN apt-get update && \ apt-get -y install sudo ENV user docker RUN useradd -m -d /h

我目前正在尝试使用以下地址提供的说明对Azure Hybrid Worker进行docker ize:

我90%成功,但是当我尝试使用onboarding.py运行最后一步时,在文档指定的位置找不到脚本。基本上,该文件在容器中的任何位置都找不到。任何帮助都会很好

FROM ubuntu:14.04

RUN apt-get update && \
    apt-get -y install sudo

ENV user docker

RUN useradd -m -d /home/${user} ${user} && \
    chown -R ${user} /home/${user} && \
    adduser ${user} sudo && \
    echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER ${user}

#WORKDIR /home/${user}

RUN sudo apt-get -y install apt-utils && \
 sudo apt-get -y install openssl && \
 sudo apt-get -y install curl && \
 sudo apt-get -y install wget && \
 sudo apt-get -y install cron && \
 sudo apt-get -y install net-tools && \
 sudo apt-get -y install auditd && \
 sudo apt-get -y install python-ctypeslib

RUN sudo wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && \
sudo sh onboard_agent.sh -w <my-workplace-id> -s <my-workspace-key>

RUN sudo python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/scripts/onboarding.py --register <arguments-removed-for-stackoverflow-post>

EXPOSE 443

来自ubuntu:14.04的

运行apt-get-update&&\
apt get-y安装sudo
环境用户docker
运行useradd-m-d/home/${user}${user}&&\
chown-R${user}/home/${user}&&\
adduser${user}sudo&&\
回显“%sudo ALL=(ALL)NOPASSWD:ALL'>>/etc/sudoers
用户${USER}
#WORKDIR/home/${user}
运行sudo apt get-y安装apt utils&&\
sudo apt get-y安装openssl&&\
sudo apt get-y安装curl&&\
sudo apt get-y安装wget&&\
sudo apt get-y安装cron&&\
sudo apt get-y安装网络工具和\
sudo apt get-y安装auditd&&\
sudo apt get-y安装python ctypeslib
运行sudo wgethttps://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && \
sudo sh board_agent.sh-w-s
运行sudo python/opt/microsoft/omsconfig/modules/nxoms automationworker/DSCResources/MSFT\u nxoms automationworkerresource/automationworker/scripts/onboarding.py--注册
揭露443

虽然我不知道它不起作用的确切原因,但我已经取得了一些进展,我想与大家分享

我一直在通过比较在VM上运行的centos和centos docker容器之间的差异来试验这个问题。虽然我还不能准确地指出缺少的东西,但我能够在centos docker容器上显示
onboard.py
文件

首先,我创建了一个文件,其中包含安装在最小centos虚拟机上的软件包列表。在我的docker文件中,我运行了这个文件并安装了每个包。我打算把文件剪下来看看有什么必要这样做

第二件事是您必须有
systemd
,默认情况下没有安装。下面是我测试时docker图像的样子:

FROM centos:7

RUN yum -y update && yum install -y sudo

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;


ENV user docker
RUN useradd -m -d /home/${user} ${user}
RUN chown -R ${user} /home/${user}
RUN echo "docker ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

USER ${user}
WORKDIR /home/${user}

COPY ./install_packages .
RUN sudo yum install -y $(cat ./install_packages)

sudo wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh

CMD ["/usr/sbin/init"]
之后,我使用
docker run
在本地运行我的容器并启动systemd:
docker run-v/run-v/sys/fs/cgroup:/sys/fs/cgroup:ro-d container\u id

然后我将
exec
放入我的容器中并运行板载脚本:

sudo sh onboard\u agent.sh-w'xxx'-s'xxx'

完成后,您有时需要等待大约5分钟,以显示丢失的文件夹。要更快地触发此操作,您需要运行以下命令:

/opt/microsoft/omsagent/bin/service\u控制重启{OMS\u工作站\u ID}

我的理解是,此命令将重新启动OMS代理,并且需要systemctl

我知道这并不能回答您关于如何在不需要远程访问的情况下从构建和运行容器开始工作的问题。我还在努力,如果我找到答案,我会告诉你的


祝你好运。

你是在虚拟机中而不是在docker容器中尝试的吗?