Docker:Entrypoint Shell脚本忽略更新的配置文件

时间:2018-06-28 05:40:26

标签: docker weblogic dockerfile

我正在RHEL 7.3 64位VM上内部运行docker 17.03.0-ce。我提取了一个weblogic 10.3.6 RHEL映像,然后修改了weblogic域配置文件,该文件是通过在docker运行期间使用命令“ VM_IP = $(hostname -i)”传递VM的IP来运行我的应用程序所需的。因此,我在docker文件中添加了sed命令以及服务器启动脚本,该脚本将config文件中的占位符替换为VM IP。但是,当服务器启动时,配置文件似乎恢复为原始状态,即未替换占位符值。我观察到,如果我注释服务器启动脚本,则占位符将被替换为正确的。我尝试从作为入口点的shell脚本执行sed,还尝试从dockerfile运行sed命令。

下面是我的docker文件

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tableView.estimatedRowHeight = 600;
    self.tableView.rowHeight = UITableViewAutomaticDimension;

    sectionTitleList = [NSMutableArray<NSString*> new];
    for (NSString* sectionTitle in yourSectionResponseArray) {
        [sectionTitleList addObject: sectionTitle];
    }

    modelList = [[NSMutableArray alloc] initWithCapacity: [sectionTitleList count]];

    //your row title array has to be 2D array.
    for(int i = 0; i < [sectionTitleList count]; i++) {
        NSMutableArray* rowStringArray = [NSMutableArray new];
        for(NSString* rowTitle in [your2DRowResponseArray objectAtIndex:i]) {
             [rowStringArray addObject: rowTitle];
        }
        [modelList insertObject: rowStringArray];
    } 
}

下面是replace.sh shell脚本

FROM 192.168.1.1:5000/wcp_image:v6

WORKDIR /

USER root

ENV VM_IP=$vm_ip

RUN rm -rf 
/data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/config/config.xml
COPY config.xml 
/data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/config/
RUN chmod 777 
/data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/config/config.xml && 
chown -R wcpuser.wcpuser 
/data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/config/config.xml

COPY replace.sh /data/docker_setup
RUN chmod 777 /data/docker_setup/replace.sh

ENTRYPOINT ["/data/docker_setup/replace.sh"]
CMD ["$VM_IP"]

请让我知道。预先感谢。

更新

下面是容器中的startWeblogic.sh脚本

#!/bin/bash
cd /data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/config

sed -i -r "s/VM_IP/$VM_IP/g" 
/data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/config/config.xml
/data/Oracle/Middleware/user_projects/domains/WCP_DOMAIN/bin/startWebLogic.sh

0 个答案:

没有答案