Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker hub autobuild inside a subdirectory

I'm trying to build an image of my Django app from the subdirectory 'app' with the following folder structure. However, after specifying my build rules on docker-hub the following:

  • Build location: app/Dockerfile
  • Build context: /

The automated build still failed to locate requirements.txt

Image of my build rule on Docker hub

/
├── app/
│   ├── Dockerfile
│   ├── requirements.txt
│   └── (Django files...)
├── nginx/
│   ├── Dockerfile
│   └── (nginx files...)
└── docker-compose.yml

app/Dockerfile:

FROM python:3.7

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN pip install --upgrade pip

RUN mkdir /app
WORKDIR /app
COPY . /app/
RUN pip install -r requirements.txt


# copy entrypoint.sh
COPY ./entrypoint.sh /app/entrypoint.sh

# run entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]

Docker-hub build logs:

Building in Docker Cloud's infrastructure...
Cloning into '.'...
Warning: Permanently added the RSA host key for IP address '18.205.93.0' to the list of known hosts.
Reset branch 'master'
Your branch is up-to-date with 'origin/master'.
KernelVersion: 4.4.0-1060-aws
Components: [{u'Version': u'18.03.1-ee-3', u'Name': u'Engine', u'Details': {u'KernelVersion': u'4.4.0-1060-aws', u'Os': u'linux', u'BuildTime': u'2018-08-30T18:42:30.000000000+00:00', u'ApiVersion': u'1.37', u'MinAPIVersion': u'1.12', u'GitCommit': u'b9a5c95', u'Arch': u'amd64', u'Experimental': u'false', u'GoVersion': u'go1.10.2'}}]
Arch: amd64
BuildTime: 2018-08-30T18:42:30.000000000+00:00
ApiVersion: 1.37
Platform: {u'Name': u''}
Version: 18.03.1-ee-3
MinAPIVersion: 1.12
GitCommit: b9a5c95
Os: linux
GoVersion: go1.10.2
Starting build of index.docker.io/wbivan/app:latest...
Step 1/10 : FROM python:3.7
---> 32260605cf7a
Step 2/10 : ENV PYTHONDONTWRITEBYTECODE 1
---> Running in 36328642fa7b
Removing intermediate container 36328642fa7b
---> 75ad30f28d3d
Step 3/10 : ENV PYTHONUNBUFFERED 1
---> Running in a738da33e03d
Removing intermediate container a738da33e03d
---> 1c43f8656572
Step 4/10 : RUN pip install --upgrade pip
---> Running in 3b7a7e530620
Requirement already up-to-date: pip in /usr/local/lib/python3.7/site-packages (19.0.3)
Removing intermediate container 3b7a7e530620
---> 8666c1c53e59
Step 5/10 : RUN mkdir /app
---> Running in 7006d126066b
Removing intermediate container 7006d126066b
---> 4561b40413c6
Step 6/10 : WORKDIR /app
Removing intermediate container 501eeeffa78c
---> a6d0e450cbfa
Step 7/10 : COPY . /app/
---> 3b07934d2804
Step 8/10 : RUN pip install -r requirements.txt
---> Running in 15878101bd36
Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
Removing intermediate container 15878101bd36
The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1

I've tried extracting all the files from app/ to another repository and dockerhub successfully built the image with no error.

If anyone has any idea that would be deeply appreciated!

like image 534
Ivan Avatar asked Mar 23 '19 17:03

Ivan


1 Answers

Try this:

  • Build location: Dockerfile
  • Build context: app
like image 81
rajesh-nitc Avatar answered Oct 18 '22 09:10

rajesh-nitc