2

我在通过 docker-compose up 启动容器时遇到问题。

我想这是一个 Windows 问题,因为我的同事拥有一台 macbook,并且在运行 docker-compose up 时出现了问题。

错误:对于 oracle-apex 无法启动服务 oracle-apex:oci 运行时错误:container_linux.go:265:启动容器进程导致“exec:\”/temp/entrypoint.sh\”:stat /temp/entrypoint.sh:否这样的文件或目录”

我的机器上确实存在 docker/apex/scripts 目录,它不是空的,并且包含文件 entrypoint.sh。当我用谷歌搜索这个错误时,我发现了一些类似的问题,它告诉我用 COMPOSE_CONVERT_WINDOWS_PATHS=1 创建一个 env 文件,我做了什么。

版本:

Docker version 1.13.1, build 092cba3   
docker-compose version 1.8.0,build unknown  
Windows 10

码头工人-compose.yml

version: '2'
services:
  proxy:
    build: ./docker/proxy/
    container_name: searchkit_proxy
    ports:
      - "8000:80"
    volumes:
      - ./docker/searchkit-v2/dist:/public/static
  oracle-apex:
    image: araczkowski/oracle-apex-ords
    container_name: vanditmar-apex
    volumes:
      - ./docker/apex/scripts/:/temp/
    ports:
      - "49160:22"
      - "8080:8080"
      - "1521:1521"
    entrypoint: ["/temp/entrypoint.sh"]
volumes:
  esdata1:
    driver: local
  oracle-data:
    driver: local
networks:
  esnet:

文件夹 docker/apex/ 中的 Dockerfile

FROM araczkowski/oracle-apex-ords
ADD ./scripts/ /temp/
RUN /temp/install.sh

入口点.sh

#!/bin/bash

exec >> >(tee -ai /docker_log.txt)
exec 2>&1

# # Update hostname
sed -i -E "s/HOST = [^)]+/HOST = $HOSTNAME/g" /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
sed -i -E "s/HOST = [^)]+/HOST = $HOSTNAME/g" /u01/app/oracle/product/11.2.0/xe/network/admin/tnsnames.ora
sed -i -E "s/PORT = [^)]+/PORT = 1521/g" /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
#
/etc/init.d/oracle-xe start
/etc/init.d/tomcat start
/etc/init.d/ssh start
/temp/install.sh

##
## Workaround for graceful shutdown. ....ing oracle... ‿( ́ ̵ _-`)‿
##
while [ "$END" == '' ]; do
    sleep 1
    trap "/etc/init.d/oracle-xe stop && END=1" INT TERM
done
;;

我是 docker 新手,但我想知道如何解决这个问题。我们认为问题在于 Windows 上文件的路径不同。

我在 Windows 上的 Ubuntu 上使用 Bash 作为命令行。如果有任何信息丢失,请告诉我,以便我补充:)

4

0 回答 0