title: How to compile C code that is using kernel function in docker and use pci device in container?
body: <p>I have a Makefile some C++ code that is using PCI device</p>
  
  <pre><code>all:
      g++ -o executable main.cpp dragon.pb.cc -std=c++11 -O3 -I/usr/include/postgresql -I/usr/include/hiredis -lzmq -lprotobuf -lpthread -lpq -lhiredis
  
  
  clean:
      rm executable
  </code></pre>
  
  <p>And It have dependencies on this C library that is using kernel functions. Makefile for this libraby is</p>
  
  <pre><code>    # dist and build are folders, not phony targets
  .PHONY: all package clean
  
  all: dragon.pb.cc dragon_pb2.py package
  
  dragon.pb.cc: dragon.proto
      protoc --cpp_out=. dragon.proto
  
  dragon_pb2.py: dragon.proto
      protoc --python_out=. dragon.proto
  
  package: build
  
  clean:
      rm -f dragon.pb.*
      rm -f dragon_pb*
      rm -rf build
      rm -rf dist
      rm -f MANIFEST
  </code></pre>
  
  <p>And here is my Dockerfile</p>
  
  <pre><code>FROM ubuntu:14.04
  
  ENV PG_MAJOR 9.3
  
  RUN apt-get update
  RUN apt-get install -y git make protobuf-compiler libhiredis-dev postgresql-server-dev-${PG_MAJOR}
  RUN apt-get install -y g++
  RUN apt-get install -y libzmq-dev
  RUN apt-get install -y libprotobuf-dev
  RUN apt-get install -y linux-headers-$(uname -r)
  ADD deployment_key /root/.ssh/id_rsa
  RUN chmod 600 /root/.ssh/id_rsa
  
  
  RUN echo "StrictHostKeyChecking no" &gt;&gt; /root/.ssh/config
  RUN echo &gt;&gt; /root/.ssh/config
  RUN echo "Host bitbucket.org" &gt;&gt; /root/.ssh/config
  
  
  RUN mkdir -p /usr/src/app/
  
  WORKDIR /usr/src/app/
  RUN git clone git@bitbucket.org:opticsdevelopment/dragon-protocols.git
  WORKDIR ./dragon-protocols
  RUN make dragon.pb.cc
  RUN cp ./dragon.pb.* ../
  COPY . /usr/src/app
  WORKDIR ../
  RUN git clone git@bitbucket.org:opticsdevelopment/dragon-module.git
  WORKDIR ./dragon-module
  RUN make all
  WORKDIR ../
  RUN make
  EXPOSE 5570
  CMD ["dragon"]
  </code></pre>
  
  <p>The problem right now is in installing linux-headers. Somehow it can't find headers</p>
  
  <pre><code>E: Unable to locate package linux-headers-3.13.0-19-generic
  E: Couldn't find any package by regex 'linux-headers-3.13.0-19-generic'
  </code></pre>