我在通过 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 作为命令行。如果有任何信息丢失,请告诉我,以便我补充:)