Мой менеджер сервисов докеров сегодня прекрасно собирал утилиту, когда я выполнил docker system prune
для того, чтобы снова собрать все мои сервисы с нуля.Теперь эта конкретная служба и только она завершается с ошибкой:
Building swagger
Step 1/10 : FROM nginx:1.15.8-perl
---> 7bb959be99b4
Step 2/10 : ENV SWAGGER_UI_VERSION 3.20.4
---> Running in 364ca6ef9b60
Removing intermediate container 364ca6ef9b60
---> 88aa04baa745
Step 3/10 : ENV URL **None**
---> Running in 3d48c38f7db0
Removing intermediate container 3d48c38f7db0
---> 76799da3d2d3
Step 4/10 : RUN apt-get update && apt-get install -y curl && curl -L https://github.com/swagger-api/swagger-ui/archive/v${SWAGGER_UI_VERSION}.tar.gz | tar -zxv -C /tmp && cp -R /tmp/swagger-ui-${SWAGGER_UI_VERSION}/dist/* /usr/share/nginx/html && rm -rf /tmp/*
---> Running in 6199b5dbdc9b
ERROR: Service 'swagger' failed to build: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown
Структура
docker-compose.yml
/
swagger/
Dockerfile-dev
start.sh
nginx.conf
swagger.json
Файлы
docker-compose.yml
swagger:
build:
context: ./services/swagger
dockerfile: Dockerfile-dev
volumes:
- './services/swagger/swagger.json:/usr/share/nginx/html/swagger.json'
ports:
- 3008:8080
environment:
- URL=swagger.json
depends_on:
- web
Dockerfile-dev
FROM nginx:1.15.8-perl
ENV SWAGGER_UI_VERSION 3.20.4
ENV URL **None**
RUN apt-get update \
&& apt-get install -y curl \
&& curl -L https://github.com/swagger-api/swagger-ui/archive/v${SWAGGER_UI_VERSION}.tar.gz | tar -zxv -C /tmp \
&& cp -R /tmp/swagger-ui-${SWAGGER_UI_VERSION}/dist/* /usr/share/nginx/html \
&& rm -rf /tmp/*
RUN rm /etc/nginx/conf.d/default.conf
COPY /nginx.conf /etc/nginx/conf.d
COPY swagger.json /usr/share/nginx/html/swagger.json
COPY start.sh /start.sh
RUN ["chmod", "+x", "/start.sh"]
CMD ["/start.sh"]
start.sh
#!/bin/bash
if [ $URL != "**None**" ]; then
sed -i -e 's@https://petstore.swagger.io/v2/swagger.json@'"$URL"'@g' /usr/share/nginx/html/index.html
fi
exec nginx -g 'daemon off;'
nginx.conf
server {
listen 8080;
root /usr/share/nginx/html/;
location / {
try_files $uri /index.html;
}
}
Я не понимаю, что происходит.
Кто-нибудь может указать мне правильное направление здесь?